创建表时出错:键列不存在

时间:2014-12-28 21:09:45

标签: php mysql sql

我尝试创建这些表:

$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行

1 个答案:

答案 0 :(得分:1)

Tags表中的外键应为id_articls而不是Tags.id_articls