Query1.close;
Query1.clear;
query1.sql.add('select min(id)+1 from student where id+1 not in (select id from student)');
query1.open;ids:=Query1.Fields[0].asstring;ids:=Ids+1;query1.close;
Query1.clear;
Query1.sql.add('insert student values(:ids,:name....)');
Query1.paramByname('ids').asstring:=ids;
....
我就是这样实现的
原理就是取表中ID的最小值加1不在表中。。
这样就可以实现自动添加。。且当删除时中间的值还可以补充上去。。
我程序中就是这样实现的。。
Query1.clear;
query1.sql.add('select min(id)+1 from student where id+1 not in (select id from student)');
query1.open;ids:=Query1.Fields[0].asstring;ids:=Ids+1;query1.close;
Query1.clear;
Query1.sql.add('insert student values(:ids,:name....)');
Query1.paramByname('ids').asstring:=ids;
....
我就是这样实现的
原理就是取表中ID的最小值加1不在表中。。
这样就可以实现自动添加。。且当删除时中间的值还可以补充上去。。
我程序中就是这样实现的。。
Create trigger id_add on tablename
for insert as
declare @hm numeric(15,0)
select @hm=max(id)+1 from tablename
update tablename set id=@hm where id=0;
你插入或删除数据,id自动增加