これは私が実行しようとしているものです:
CREATE TABLE "order" (
"o_id" INTEGER not null primary key,
"c_id" INTEGER,
PRIMARY KEY (o_id),
FOREIGN KEY (c_id) REFERENCES customer(c_id)
);
上記の SQL コマンドを実行すると、次のエラーが発生します。
エラー コード -1、SQL 状態 42Z93: 制約 'SQL120326130633321' と 'SQL120326130633320' に同じ列セットがありますが、これは許可されていません。
上記のSQLコマンドの前に、これを実行しました:
CREATE TABLE "customer" (
"c_id" INTEGER not null primary key,
"c_first" VARCHAR(30),
"c_last" VARCHAR(30)
);
編集(解決策):
私はそれを修正したと思います。
まず、PRIMARY KEY(o_id)
SQLコマンドの2行目に入力した内容を基本的に繰り返したため、を削除する必要があっo_id INTEGER not null primary key
たため、同じ列の主キーを2回作成しようとしたと不平を言いました。
CUSTOMER
次に、それが修正された後、テーブルが見つからないという別のエラーが表示されました。CREATE TABLE
おそらく問題は、実行しようとしたときにテーブル名 'customer' の前後にコンマ ("...") を使用したことでした。
「顧客」テーブルを削除し、SQL コマンドで引用符を使用せずに再作成しました。
その後、「注文」に対して「CREATE TABLE」を実行しましたが、うまくいきました。
奇妙な違いは、SQL で顧客テーブル名の周りに引用符を使用したとき、最初はその名前が Netbeans のデータベース エクスプローラーですべて小文字で表示されたことです。しかし、引用符を省略すると、テーブル名はすべて大文字になり、列名も大文字になりました。