gpt4 book ai didi

sql - Firebird 自动增量问题

转载 作者:行者123 更新时间:2023-12-01 09:31:36 25 4
gpt4 key购买 nike

我通过以下代码创建了客户表:

CREATE TABLE CUSTOMERS (
ID INTEGER DEFAULT 1 NOT NULL,
"NAME" VARCHAR(30) CHARACTER SET UTF8 COLLATE UTF8,
"LASTNAME" VARCHAR(30) CHARACTER SET UTF8 COLLATE UTF8);


ALTER TABLE CUSTOMERS ADD PRIMARY KEY (ID);


SET TERM ^ ;

CREATE TRIGGER BI_CUSTOMERS_ID FOR CUSTOMERS
ACTIVE BEFORE INSERT
POSITION 1
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(CUSTOMERS_ID_GEN, 1);
END^

SET TERM ; ^

但是当我插入第二行时:

insert into Customers(Name,LastName) values('Hamed','Kamrava');

它得到以下错误:

Violation of PRIMARY or UNIQUE KEY constraint "INTEG_2" on table "CUSTOMERS".

最佳答案

id 是主键,默认值为 1

在第一条记录中,由于您没有明确提及 id 的值,因此它已插入 1。但是您不能有任何其他记录 id = 1因为 id 是主键。

使用语句:

insert into Customers(id, Name, LastName) values (2, 'Hamed', 'Kamrava');

这应该插入记录。如果您不想硬编码每一行的 ID 值,建议您使用 create a sequence然后在插入过程中,使用,

insert into Customers(id, Name, LastName) values (nextval('<seq_name>'), <name>, <lastname>);

关于sql - Firebird 自动增量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14727201/

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