关于序列的SQL查询

时间:2017-04-01 08:29:57

标签: sql database sequence

我在Net Beans中制作了一个序列。但是当我尝试在表格中插入数据时,我收到了错误。

我的代码是:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1


INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');

错误是:

  

[例外,错误代码30,000,SQLState 42X04]列   'SEQ_PERSON.NEXTVAL'要么不在FROM列表中的任何表中,要么   出现在连接规范中,超出了范围   加入规范或出现在HAVING子句中并且不在   GROUP BY列表。如果这是一个CREATE或ALTER TABLE语句   'SEQ_PERSON.NEXTVAL'不是目标表中的列。

1 个答案:

答案 0 :(得分:-1)

错误消息Error code 30,000, SQLState 42X04表示您使用的是Derby DB而不是Oracle。在这种情况下,您需要对getting the next value使用Derby语法。所以你的插入应该是这样的:

INSERT INTO Persons (ID,FirstName,LastName)
VALUES (NEXT VALUE FOR seq_person,'Lars','Monsen')