我的表格有问题,而且正好在ID列中, 当我插入记录>> ID将自动增加1, 但问题,当我删除旧记录 并插入新记录增量继续计数 并且新记录的ID没有按顺序获取旧记录的ID ;
我的删除声明:
String Q="DELETE FROM EMPLOYEE ( ID , NAME) WHERE NAME='"+lst1.getSelectedValue()+"'";
stmt.execute(Q);
创建声明:
stmt.execute("CREATE TABLE EMPLOYEE(ID INTEGER NOT NULL PRIMARY KEY"
+ " GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1)"
+ ",NAME varchar(50),BIRTHDAY varchar(50),BIRTHMONTH varchar(50)"
+ ",BIRTHYEAR varchar(50),SEX varchar(50),DEPARTMENT varchar(50))");}
插入声明:
String Query="INSERT INTO EMPLOYEE(NAME , BIRTHDAY , BIRTHMONTH , "
+ "BIRTHYEAR , SEX , DEPARTMENT) VALUES('"+txname.getText()+"','"
+ ""+compd.getSelectedItem()+"','"+compm.getSelectedItem()+"','"
+ ""+compy.getSelectedItem()+"','"+composx.getSelectedItem()+"','"
+ ""+txdep.getText()+"')";
stmt.execute(Query);
非常感谢首先回答并尝试帮助
答案 0 :(得分:0)
您可以在应用程序端解决这个问题,采用不真正删除行的策略,但添加布尔字段'删除'如果没有删除则为0,如果删除则为1。
如果您想避免ID序列中的漏洞,请执行此操作。
否则你会感到ID序列中有漏洞。有什么问题?
顺便问一下,你正在使用的数据库是什么?
我读了你的评论。关键是所有数据库都在表的末尾附加新记录。因此,如果您想重用ID,您就有这些可能性:
换句话说:您必须直接管理ID。数据库管理它们的方式是:
此致