12

私はhsqldbを初めて使用します。私は、ユーザーからいくつかの入力を取得するための簡単なアプリケーションを開発しています。したがって、組み込みデータベースを検索し、hsqldbが私の要件の解決策であることがわかりました。

いくつかのcreatetable構文がありますが、例外がスローされます。

(このクエリは、Netbeansデータベースサービスを使用して実行されます)

クエリ:

CREATE TABLE  company (
  comp_name varchar(100) NOT NULL,
  comp_id int(40) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (comp_id)
);

また

CREATE TABLE  company (
  comp_name varchar(100) NOT NULL,
  comp_id int(40) NOT NULL IDENTITY
);

hsql dbはエラーをスローします:

Error code -5581, SQL state 42581: unexpected token: ( : line: 3
Line 2, column 1

Execution finished after 0 s, 1 error(s) occurred.

親切に私を助けてください。

前もって感謝します..

乾杯...!

4

1 に答える 1

19

Int型フィールドでは必要ないためINT or INTEGER 、フィールド長を指定せずに使用します。などのタイプのフィールドVARCHARに必要です。DECIMAL

 CREATE TABLE  company (
   comp_name varchar(100) NOT NULL,
   comp_id int
 );

自動インクリメントするには:

 ALTER TABLE company ALTER COLUMN comp_id 
 SET GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1);

または:

 CREATE TABLE  company (
   comp_name varchar(100) NOT NULL,
   comp_id int GENERATED BY DEFAULT AS IDENTITY 
                                         (START WITH 1, INCREMENT BY 1) NOT NULL
 );

以下のようにPRIMARY_KEYを追加することもできます。

 CREATE TABLE  company (
   comp_name varchar(100) NOT NULL,
   comp_id INTEGER NOT NULL,
   PRIMARY KEY (comp_id)
 );
于 2012-11-03T06:06:53.560 に答える