INSERT ALL
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Irene','Giles','5')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Duncan','Mcdaniel','1')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Emi','Camacho','44')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Castor','Cain','27')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Shelley','Whitley','59')
SELECT 1 FROM DUAL;会出现ORA-00001: unique constraint (SYSTEM.SYS_C004056) violated请问要如何insert多行而且P_Id是一个unique的sequence?难道我要一行一行的insert吗?
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Irene','Giles','5')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Duncan','Mcdaniel','1')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Emi','Camacho','44')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Castor','Cain','27')
INTO myTable (P_Id,FirstName,LastName,HappyRate) VALUES (seq_person.nextval,'Shelley','Whitley','59')
SELECT 1 FROM DUAL;会出现ORA-00001: unique constraint (SYSTEM.SYS_C004056) violated请问要如何insert多行而且P_Id是一个unique的sequence?难道我要一行一行的insert吗?
http://blog.chinaunix.net/space.php?uid=304668&do=blog&cuid=1955705另外,你这是 只举例子么? 这样写insert all 和 单个写insert没啥区别啊 都要手动写每个值~
insert into myTable (P_Id,FirstName,LastName,HappyRate)
select seq_person.nextval,value1,value2,value3 from A where rn=行
INSERT INTO myTable (P_Id,FirstName,LastName,HappyRate)
select seq_person.nextval,'Irene','Giles','5' from dual
union
select seq_person.nextval,'Duncan','Mcdaniel','1' from dual
union
select seq_person.nextval,'Emi','Camacho','44' from dual
union
select seq_person.nextval,'Castor','Cain','27' from dual
union
select seq_person.nextval,'Shelley','Whitley','59' from dual;
你的语句,seq_person.nextval只执行一次,所以主键会重复。