在管理工具中直接设置为 "auto" 即可设置为自动增长字段. 同时会创建一个序列值, 如 RDB$10, 后面 10 会递加, 若删除表, 则这个序列也自动删除. 但没有同时创建触发器.
在 insert 表时, 若此字段给值则用给定值, 若没有才会调用序列的自增值. 这带来一个问题: 若手工给定一个值后, 当后续不给值时, 序列递增到此时会和手工值重复.
若是主键则会出错.
或重建表后, 重新导入数据, 这时自增序列当前值是 1, 则表中实际已有很多数据, 这时需要查询表中的最大值, 然后手工设定序列的当前值.
找到表对应的序列名, 如下面的 RDB$7, 122222 表示一次增加的值, 这样可以把序列的当前值改到表中的最大值
SELECT GEN_ID("RDB$7",122222) FROM RDB$DATABASE;
来源: http://www.bubuko.com/infodetail-3803406.html