2017-04-01 3 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

1つのDBを使用していますか? –

+0

私はnetbeans内部データベースを使用しています。 –

+0

あなたは 'AUTO_INCREMENT'についてまだ知っていますか? – toonice

答えて

-1

エラーメッセージError code 30,000, SQLState 42X04は、Oracle以外のDerby DBを使用していることを示しています。その場合、getting the next valueのDerby構文を使用する必要があります。したがって、挿入は次のようになります:

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