Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动增量ID java db_Java_Database_Netbeans_Derby - Fatal编程技术网

自动增量ID java db

自动增量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 是否有任何脚本可以解决此问题?通常,通过设置标志从数据

我有这样一个问题

我的数据库里有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


是否有任何脚本可以解决此问题?

通常,通过设置标志从数据库中软删除记录是一种很好的做法,而不是删除整个记录,并且最好使用自动增量来增加相关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”的代码贴出来吗?