![](/img/trans.png)
[英]How to Delete a row from more than one table with one sql query where email id is same
[英]how to delete a row from table in derby where ID column increment by 1?
我的表和ID列中的表存在问题,当我插入记录>>时ID会自动增加1,但是当我删除旧记录并插入新记录时,增量会继续计数,而新记录的ID却没有增加不要按顺序获取旧记录的ID ;
我的删除语句: String Q="DELETE FROM EMPLOYEE ( ID , NAME) WHERE NAME='"+lst1.getSelectedValue()+"'"; stmt.execute(Q);
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);
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,如果删除则为1。
在这种情况下,您要避免ID序列出现漏洞。
否则,您将忍受ID序列中会有漏洞的事实。 这是什么问题?
顺便说一下,您正在使用的数据库是什么?
我读过你的评论。 关键是所有数据库都在表的末尾附加新记录。 因此,如果您想重复使用ID,则有以下几种可能性:
换句话说:您必须直接管理ID。 数据库管理它们的方式是:
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.