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吗?

解决方案 »

  1.   

    可以参考一下这个。
    http://blog.chinaunix.net/space.php?uid=304668&do=blog&cuid=1955705另外,你这是 只举例子么?  这样写insert all  和 单个写insert没啥区别啊   都要手动写每个值~
      

  2.   

    你可以先写在sql文件中再粘贴或者导入。数据录入是没什么捷径的。
      

  3.   

    后面的值是否在一张表A里?写个过程咯。。
    insert into myTable (P_Id,FirstName,LastName,HappyRate) 
    select seq_person.nextval,value1,value2,value3 from A where rn=行
      

  4.   

    写insert all 和 单个写insert没啥区别啊我也觉得
      

  5.   

    一条一条进行插入吧,写在一条insert里,和写多条insert有什么区别吗?
      

  6.   

    换成这种形式。
    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只执行一次,所以主键会重复。