gpt4 book ai didi

java - 如果ID是IDENTITY COLUMN,如何删除或更改ID?

转载 作者:行者123 更新时间:2023-11-30 02:52:03 24 4
gpt4 key购买 nike

我的数据库有一个问题。我有一个Derby DB,COUPON_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 会拒绝,因为 COUPON_ID 列的 id 作为标识列并且会自动增加。

我希望空的行间隔不会被收集。 有解决这个问题的办法吗?

最佳答案

But here a question, what should I do then with these empty lines? If I want to insert into them some data, Derby refuses, because the id of the COUPON_ID column as the identified column and it increasing automatically.

我倾向于认为,您无法重用 ID 的原因并不是您的 ID 列是身份列,而是它被标记为 GENERATED ALWAYS。无论如何,从数据库中删除行不会产生“空行”。之后还有未使用的 ID 值,但这些值实际上不占用空间。

您应该忽略不再使用的 ID。自动生成的 ID 的目的仅仅是为了唯一地标识行。因此,重要的是值(value)观服务于这一目的。 ID 值不应该具有特殊的意义,当然您也不应该关心它们之间的差距。

And I would like that empty intervals of lines didn't collect. There is a decision to this problem?

如果您愿意更改列定义,那么您可能可以让自己重用 ID,但您不应该这样做。这些间隙不是一个需要关心的问题,除非您执行的删除次数过多以至于耗尽了 ID 值。

关于java - 如果ID是IDENTITY COLUMN,如何删除或更改ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38339207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com