我尝试创建这些表:
$sql = "CREATE TABLE IF NOT EXISTS Articls (
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(254) COLLATE utf8_persian_ci NOT NULL
) DEFAULT COLLATE utf8_persian_ci";
$sql = "CREATE TABLE IF NOT EXISTS Tags (
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
id_articls INT(10) UNSIGNED NOT NULL,
name VARCHAR(256) COLLATE utf8_persian_ci NOT NULL,
FOREIGN KEY (`Tags.id_articls`) REFERENCES Articls(`Articls.id`)
) DEFAULT COLLATE utf8_persian_ci"
第一个表创建成功但是secnond我收到此错误:
创建表时出错:键列'Tags.id_articls'不存在于 表
如果我删除Tags.
和Tags.id_articls
中的Tags.id_articls
,我会收到错误:150
另外如果我尝试
$sql = "CREATE TABLE IF NOT EXISTS Tags (
id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
id_articls INT(10) UNSIGNED NOT NULL,
name VARCHAR(256) COLLATE utf8_persian_ci NOT NULL,
FOREIGN KEY (Tags.id_articls) REFERENCES Articls(Articls.id)
) DEFAULT COLLATE utf8_persian_ci"
我收到此错误:
创建表时出错:你有一个 SQL语法错误;查看与您的手册相对应的手册 用于在'.id_articls附近使用正确语法的MySQL服务器版本 参考文献Articls(Articls.id))DEFAULT COLLATE utf8_persian_ci'at 第5行
答案 0 :(得分:1)
Tags
表中的外键应为id_articls
而不是Tags.id_articls