2

我正在尝试在 MYSQL 上插入以下信息,但不断收到上述错误?即使我只是尝试插入其中一个值,它也会不断出错。

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进入一些没有两列的表的先前版本?)。

删除外键约束(和DROP任何现有表)。

于 2012-10-15T17:20:14.540 回答