mariaDB 外键中的奇怪错误
Odd Error in mariaDB Foreign Keys
嗨,我希望有人能帮助我解决问题,因为当我尝试添加外键约束时出现此错误。
我的数据库名称是"hazard"
Child:
CREATE TABLE `child` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`a` INT(11) NULL DEFAULT NULL,
`b` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
Parent:
CREATE TABLE `parent` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`alfa` INT(11) NULL DEFAULT NULL,
`beta` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
这些是创建代码(使用 HeidiSQL)
当我尝试添加外键时
与
ALTER TABLE CHILD MODIFY COLUMN A INT,add constraint fk_parent_child FOREIGN KEY(A) REFERENCES PARENT(ALFA);
或
ALTER TABLE CHILD add constraint fk1 foreign key (a) references parent(alfa);
我得到同样的错误
Can't create table 'hazard.#sql-d04_53' (errno: 150)
我的许多使用 MariaDB 和 mySQL
的同学都遇到了这种情况
对给您带来的不便表示歉意,希望大家能帮助我们。
错误 150 通常意味着您以错误的顺序更新表。也就是说,您的 first INSERT 违反了您的 second
INSERT 将修复的 FOREIGN KEY
约束。
在你的情况下,你正在做 ALTER
而不是 INSERT
。交换 ALTER
的顺序。如果这不起作用,请检查数据以确定您不会违反 FK 约束。如果你通过了,请继续阅读...
在极端情况下,您可以在执行插入时关闭外键约束,然后再打开它们。 (但这会让你容易出错。)
添加
KEY (`alfa`)
到parenttable。 "The referenced columns must be a PRIMARY KEY or a UNIQUE index." – https://mariadb.com/kb/en/mariadb/foreign-keys/
嗨,我希望有人能帮助我解决问题,因为当我尝试添加外键约束时出现此错误。
我的数据库名称是"hazard"
Child:
CREATE TABLE `child` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`a` INT(11) NULL DEFAULT NULL,
`b` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
Parent:
CREATE TABLE `parent` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`alfa` INT(11) NULL DEFAULT NULL,
`beta` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
这些是创建代码(使用 HeidiSQL)
当我尝试添加外键时 与
ALTER TABLE CHILD MODIFY COLUMN A INT,add constraint fk_parent_child FOREIGN KEY(A) REFERENCES PARENT(ALFA);
或
ALTER TABLE CHILD add constraint fk1 foreign key (a) references parent(alfa);
我得到同样的错误
Can't create table 'hazard.#sql-d04_53' (errno: 150)
我的许多使用 MariaDB 和 mySQL
的同学都遇到了这种情况对给您带来的不便表示歉意,希望大家能帮助我们。
错误 150 通常意味着您以错误的顺序更新表。也就是说,您的 first INSERT 违反了您的 second
INSERT 将修复的 FOREIGN KEY
约束。
在你的情况下,你正在做 ALTER
而不是 INSERT
。交换 ALTER
的顺序。如果这不起作用,请检查数据以确定您不会违反 FK 约束。如果你通过了,请继续阅读...
在极端情况下,您可以在执行插入时关闭外键约束,然后再打开它们。 (但这会让你容易出错。)
添加
KEY (`alfa`)
到parenttable。 "The referenced columns must be a PRIMARY KEY or a UNIQUE index." – https://mariadb.com/kb/en/mariadb/foreign-keys/