Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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
Java 如果ID是标识列,如何删除或更改ID?_Java_Sql_Derby - Fatal编程技术网

Java 如果ID是标识列,如何删除或更改ID?

Java 如果ID是标识列,如何删除或更改ID?,java,sql,derby,Java,Sql,Derby,我对数据库有一定的问题。 我有一个Derby DB,优惠券ID列由标识符决定,它增加1 表示例: CREATE TABLE Coupon ( COUPON_ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), TITLE VARCHAR(30), START_DATE DATE, END_DATE DATE, AMOUNT INTEGER, T

我对数据库有一定的问题。 我有一个Derby DB,优惠券ID列由标识符决定,它增加1

表示例:

CREATE TABLE Coupon
(
    COUPON_ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
    TITLE VARCHAR(30),
    START_DATE DATE,
    END_DATE DATE,
    AMOUNT INTEGER,
    TYPE VARCHAR(20),
    MESSAGE VARCHAR(300),
    PRICE DOUBLE,
    IMAGE VARCHAR(500),
    CONSTRAINT PRIME_COUPON_ID PRIMARY KEY(COUPON_ID)
);
比如说,我输入了新数据或删除了…,一切正常。删除时有一个问题。 当我想删除一些数据时,这里有一个问题。 如果我有一定数量的线,将允许1000,我打算删除。一切正常情况下都会被移除,一切正常情况下都会继续工作。但这里有一个问题,我该怎么处理这些空行呢? 如果我想在其中插入一些数据,Derby拒绝了,因为优惠券id列的id作为标识列,并且它会自动增加

我希望没有收集到空的行间隔。 对这个问题有一个决定吗

但这里有一个问题,我该怎么处理这些空行呢?如果我想在其中插入一些数据,Derby拒绝了,因为优惠券id列的id作为标识列,并且它会自动增加

我倾向于认为,您不能重用ID的原因并不是因为您的ID列是一个标识列,而是因为它被标记为总是生成的
。在任何情况下,从数据库中删除行都不会产生“空行”。之后会有未使用的ID值,但这些值实际上不会占用空间

您应该忽略不再使用的ID。自动生成的ID仅用于唯一标识行。因此,重要的是,这些价值观能够达到这一目的。ID值不应具有特殊意义,当然,您也不应关心它们之间的差异

我希望没有收集到空的行间隔。对这个问题有一个决定吗

如果您愿意更改列定义,那么您可能会允许自己重用ID,但您不应该这样做。除非执行了太多的删除操作,导致ID值不足,否则这些间隙不是一个值得关注的问题