自动增量ID java db
我有这样一个问题 我的数据库里有10名学生。 当我从数据库中删除ID为2的学生时,我想添加一个ID为2的新学生,它将替换先前删除的学生,它将获得ID 11,no 2 我使用脚本自动增量ID java db,java,database,netbeans,derby,Java,Database,Netbeans,Derby,我有这样一个问题 我的数据库里有10名学生。 当我从数据库中删除ID为2的学生时,我想添加一个ID为2的新学生,它将替换先前删除的学生,它将获得ID 11,no 2 我使用脚本 CREATE TABLE student ( id_student INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), ...... 我使用JavaDB 是否有任何脚本可以解决此问题?通常,通过设置标志从数据
CREATE TABLE student (
id_student INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), ......
我使用JavaDB
是否有任何脚本可以解决此问题?通常,通过设置标志从数据库中软删除记录是一种很好的做法,而不是删除整个记录,并且最好使用自动增量来增加相关ID。 只需对设置了标志的记录进行计数,即可获得活动记录数。
我希望答案能有所帮助。一般来说,通过设置标志从数据库中软删除记录是一种好的做法,而不是删除整个记录,最好使用自动增量,以增加相关ID。 只需对设置了标志的记录进行计数,即可获得活动记录数。 我希望答案有帮助。既然你说的是“始终生成”,德比总是要选择一个新的身份值 如果您说“默认生成”,那么Derby只会选择一个新的标识值,如果您没有提供 在这种情况下(“默认生成”),您可以指定一个值为2的新记录,只要不存在值为2的现有记录,您的新记录就会被接受 这里的更多信息:既然您说了“始终生成”,Derby将始终选择一个新的标识值 如果您说“默认生成”,那么Derby只会选择一个新的标识值,如果您没有提供 在这种情况下(“默认生成”),您可以指定一个值为2的新记录,只要不存在值为2的现有记录,您的新记录就会被接受
这里有更多信息:花了很长时间才弄明白这一点。在Netbeans中,您可以运行此脚本来添加表:
CREATE TABLE MYTABLE
(
"ID" INT not null primary key
GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
"NAME" VARCHAR(99)
);
请注意大写。如果ID和NAME不是大写,则此操作无效。花了很长时间才弄清楚这一点。在Netbeans中,您可以运行此脚本来添加表:
CREATE TABLE MYTABLE
(
"ID" INT not null primary key
GENERATED ALWAYS AS IDENTITY
(START WITH 1, INCREMENT BY 1),
"NAME" VARCHAR(99)
);
请注意大写。如果ID和NAME不是大写,则此操作无效。重新使用identity列是一个非常糟糕的主意。假设学生2得了A,你用一个新的学生代替他/她,然后突然那个id为2的学生也会得了A。你能发布代码吗?你是如何在数据库中插入新的学生“2”的?重新使用标识列是一个非常糟糕的主意。假设学生2得了A,你用一个新的学生替换他/她,然后突然,这个id为2的学生也会得了A。你能把你如何在数据库中插入新的学生“2”的代码贴出来吗?