[英]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.