【发布时间】:2020-04-10 10:26:48
【问题描述】:
当我想更改“matkul_prasyarat”表的约束时,突然出现错误,mysql 删除了“matkul_prasyarat”表,然后当我尝试再次创建它时,出现错误号 150 这是错误
there is no index in the table which would contain
the columns as the first columns, or the data types in the
table do not match the ones in the referenced table
or one of the ON ... SET NULL columns is declared NOT NULL. Constraint:
,
CONSTRAINT `matkul_prasyarat_ibfk_2` FOREIGN KEY (`nama_matkul`) REFERENCES `matkul_list` (`nama_matkul`) ON DELETE CASCADE ON UPDATE CASCADE
如何解决这个问题?
我想制作表格“matkul_prasyarat”
PK no tinyint 20 AI
no_id_matkul int 20
nama_matkul VARCHAR 50
这是我能从MySQL: Can't create table (errno: 150) 中想到的语法 但这是错误的
CREATE TABLE matkul_prasyarat (
no INT,
nama_matkul VARCHAR,
INDEX matkul_prasyarat_ibfk_2 (nama_matkul),
FOREIGN KEY (nama_matkul)
REFERENCES matkul_list(nama_matkul)
ON DELETE CASCADE
) ENGINE=INNODB;
编辑:alrd 上面的语法我忘了输入大小,谢谢你的帮助
【问题讨论】:
-
这能回答你的问题吗? MySQL: Can't create table (errno: 150)
-
是的,它是一样的,但我是 mysql 的新手,我不知道解决这个问题的 sql 语法
-
ALTER TABLE matkul_list ADD INDEX (nama_matkul) -
外键引用主键通常更好,而不是另一列。
-
@Barmar 我已经 alrd dd 索引到 nama_matkul,但它仍然错误,我试图从第一个评论中创建 sql 语法但它的错误,你介意检查我的 sintax 吗?生病编辑这篇文章
标签: mysql foreign-keys