那就有可能是触发器建的有问题 create or replace trigger trg_name before insert on A for each row begin select seq_name.nextval into :new.col1 from dual; end; /
自动增量解决方法: 1.创建sequence就可以 create sequence seq_name minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 cache 20; 可以直接在插入时调用seq_name.nextval; 如insert into table_name(proid) values(seq_name.nextval);2.也可以创建触发器(同时要创建sequence): create or replace trigger trg_name before insert on table_name for each row begin select seq_name.nextval into :new.proid from dual; end; /
输入还是要的,你可以在程序里面insert into A (col1,col2,col3) values ('aaaa','') 给col1列一个值,只要类型相兼容就行,到时候触发器生成的主键会覆盖aaaa,目的达到: 如果要实现主键客户端自动生成的目的:你就在DEL\ phi里面做个函数生成就OK了,把触发器的生成逻辑在DELPHI里面重写一遍,不用触发器,INSERT 的时候col1列使用函数生成的值插入就行了,这还不简单吗
create or replace trigger trg_name
before insert on A
for each row
begin
select seq_name.nextval into :new.col1 from dual;
end;
/
1.创建sequence就可以
create sequence seq_name
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
可以直接在插入时调用seq_name.nextval;
如insert into table_name(proid) values(seq_name.nextval);2.也可以创建触发器(同时要创建sequence):
create or replace trigger trg_name
before insert on table_name
for each row
begin
select seq_name.nextval into :new.proid from dual;
end;
/
给col1列一个值,只要类型相兼容就行,到时候触发器生成的主键会覆盖aaaa,目的达到:
如果要实现主键客户端自动生成的目的:你就在DEL\
phi里面做个函数生成就OK了,把触发器的生成逻辑在DELPHI里面重写一遍,不用触发器,INSERT 的时候col1列使用函数生成的值插入就行了,这还不简单吗