0

これは私が実行しようとしているものです:

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 のデータベース エクスプローラーですべて小文字で表示されたことです。しかし、引用符を省略すると、テーブル名はすべて大文字になり、列名も大文字になりました。

4

1 に答える 1