2

MYSQL に次の情報を挿入しようとしていますが、上記のエラーが引き続き発生しますか? 値の1つを挿入しようとしても、エラーが発生し続けます。

CREATE TABLE depositor
    (depositor_name   char(30),
    depositor_number  varchar(20),
    PRIMARY KEY (depositor_number),
    FOREIGN KEY (depositor_name)  REFERENCES depositor(depositor_name));

INSERT INTO depositor VALUES("Johnson", "A-101");
INSERT INTO depositor VALUES("Smith",   "A-215");
INSERT INTO depositor VALUES("Hayes",   "A-102");
INSERT INTO depositor VALUES("Hayes",   "A-101");
INSERT INTO depositor VALUES("Turner",  "A-305");
INSERT INTO depositor VALUES("Johnson", "A-201");
INSERT INTO depositor VALUES("Jones",   "A-217");
INSERT INTO depositor VALUES("Lindsay", "A-222");
INSERT INTO depositor VALUES("Majeris", "A-333");
INSERT INTO depositor VALUES("Smith",   "A-444");

SELECT * FROM DEPOSITOR
4

3 に答える 3

4

念のため、誰かに役立ちます。

テーブル X で挿入と更新を実行しているときにこのエラーが発生しました。挿入クエリと更新クエリに問題はありませんでした。他のテーブルYに更新/挿入されている行を挿入するトリガーがあることがわかりました。同じ数の列がありませんでした。そのため、このエラーがスローされていました。Y のテーブル構造を変更したら、エラーは解決しました。

于 2014-11-07T10:09:38.410 に答える
1

二重引用符を一重引用符に置き換えます。

INSERT INTO depositor VALUES('Johnson', 'A-101');
于 2012-10-15T17:12:48.060 に答える
0

外部キーは自分自身を参照していますが、これは意味がありません (実際、MySQL で作成が許可されていることに驚いています: 試してみるとエラーが発生します。おそらく、CREATE TABLEコマンドが気付かないうちに失敗しINSERT、いくつかのキーにアクセスしようとしている可能性があります) 2 つの列を持たない以前のバージョンのテーブル?)。

外部キー制約 (およびDROP既存のテーブル) を削除します。

于 2012-10-15T17:20:14.540 に答える