【问题标题】:how to solve errno 150 for a mysql code? [duplicate]如何解决mysql代码的errno 150? [复制]
【发布时间】:2015-05-15 05:48:12
【问题描述】:

为什么创建第二个表(标签)我得到错误?

$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";

错误:

表格文章创建成功/创建错误标签:无法创建 表 'admin_pars.Tags' (errno: 150)

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    您的外键引用正在引用Articls 中的任意列。随便你:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 2020-10-02
      • 2011-08-20
      • 2018-04-14
      • 1970-01-01
      • 2013-02-02
      • 1970-01-01
      • 2014-04-05
      相关资源
      最近更新 更多