我在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'不是目标表中的列。
答案 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')