如何解决errno 150的mysql代码?

时间:2015-03-12 21:24:49

标签: 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,                     
            alias INT(10) UNSIGNED NOT NULL
)   DEFAULT COLLATE utf8_persian_ci";


/////////////////////////////////////////////////////////////////////////

$sql = "CREATE TABLE IF NOT EXISTS Tags (
            id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,  
            alias INT(10) UNSIGNED NOT NULL,    
            name VARCHAR(256) COLLATE utf8_persian_ci NOT NULL,    
            FOREIGN KEY (alias) REFERENCES Articls (alias)      
) DEFAULT COLLATE utf8_persian_ci";

错误:

  

表格Articls创建成功/错误创建标记:无法创建   表'admin_pars.Tags'(错误号:150)

1 个答案:

答案 0 :(得分:1)

您的外键引用引用Articls中的任意列。要么你想要:

FOREIGN KEY (alias) REFERENCES Articls (id)  
                                      //^^ 

或者,您希望将alias声明为Articls中的唯一键。