2017-04-01 42 views
-1

我在Net Beans中做了一個序列。但是當我嘗試在表格中插入數據時,出現錯誤。關於序列的SQL查詢

我的代碼是:

CREATE SEQUENCE seq_person 
MINVALUE 1 
START WITH 1 
INCREMENT BY 1 


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

錯誤是:

[異常,錯誤代碼30000,的SQLState 42X04]柱 'SEQ_PERSON.NEXTVAL' 爲未在任何表FROM列表或 出現在聯接規範中,並且不在 聯接規範的範圍內或出現在HAVING子句中,並且不在 GROUP BY列表中。如果這是一個CREATE或ALTER TABLE語句,那麼 'SEQ_PERSON.NEXTVAL'不是目標表中的一列。

+0

oracle或mysql,你使用哪一個數據庫? –

+0

我正在使用netbeans內部數據庫。 –

+0

你知道'AUTO_INCREMENT'嗎? – toonice

回答

-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')