我的Oracle中用Sequence和Triger给某一个表设置了主键自增,但是我现在要批处理运行SQL语句,希望插入数据到表中以后,主键值为插入语句中设置的值。
例如:当前有一个Student表,有student_id,name,设置自增因子为1
使用insert into Student(student_id,name) values(2,'tom') 。 如果不做任何其它的处理,运行后插入到表的数据为:1,tom。我想要在插入前怎么处理,让其插入后表中数据为:2,tom.  也就是表中插入的数据的主键为插入信息中的主键,而不是Oracle自增的值请大家帮忙啊!

解决方案 »

  1.   

    使用insert into Student(student_id,name) values(2,'tom') 。 如果不做任何其它的处理,运行后插入到表的数据为:1,tom。我想要在插入前怎么处理,让其插入后表中数据为:2,tom.  这个怎么可能呢?
      

  2.   

    使用insert into Student(student_id,name) values(2,'tom') 。本来就是2,tom了啊!
      

  3.   

    不是阿,如果是初始时,插入后在表中看是1,tom.主键是根据触发器来的初始为1,而不是用户在插入语句中设置的值那位用过这个阿,帮忙解释下阿
      

  4.   

    这个表在程序用的时候是要用自增主键的,但是现在我想要导入数据,数据是以前准备好的,在SQL中用过的,现在想把它倒入到Oracle中,牵扯到主外键关系,所以希望可以在插入数据之前将Oracle的自增改一下,让其不用Oracle自己的自增主键,而是按照插入语句中的主键值
      

  5.   

    就是导入数据之前先把trigger给disable了,导入之后再enable。
      

  6.   

    就是导入数据之前先把trigger给disable了,导入之后再enable。恩,我想要得就是这个效果,可否说详细点了,这个我还不太会。谢谢
      

  7.   

    ALTER TRIGGER t2_tr1 DISABLE;
    ALTER TRIGGER t2_tr1 ENABLE;