• ERROR 1005 (HY000): Can't create table'matrix.system_log' (errno: 150)


    CREATE TABLE `user` (
    `id` bigint(32) NOT NULL AUTO_INCREMENT ,
    `name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
    `erp` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' ,
    `email` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `department` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `position` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `role` int(1) NOT NULL ,
    `lastProductID` bigint(32) NULL DEFAULT NULL ,
    `userIP` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `debugRunStatus` int(1) NULL DEFAULT NULL ,
    `createTime` datetime NULL DEFAULT NULL ,
    `remark` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `ho1Name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `ho2Name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `ho3Name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `ho4Name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `ho5Name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `modifyTime` datetime NULL DEFAULT NULL ,
    `defaultType` int(11) NULL DEFAULT NULL ,
    PRIMARY KEY (`id`, `erp`)
    )
    ENGINE=InnoDB
    DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
    AUTO_INCREMENT=486
    ;

    CREATE TABLE `system_log` (
    `id`  bigint(32) NOT NULL AUTO_INCREMENT ,
    `erp`  varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
    `operType`  int(11) NOT NULL DEFAULT 0 COMMENT '1 ---登录' ,
    `operTime`  datetime NOT NULL ,
    `remark`  varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `browerIP`  varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
    `modifyTime`  datetime NOT NULL ,
    PRIMARY KEY (`id`),
    FOREIGN KEY (`erp`) REFERENCES `user` (`erp`) ON DELETE CASCADE ON UPDATE RESTRICT
    )
    ENGINE=InnoDB
    DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
    AUTO_INCREMENT=2247
    ;

    报错信息如下:

    ERROR 1005 (HY000): Can't create table 'matrix.system_log' (errno: 150)

    mysql> show engine innodb statusG

    140303 13:58:42 Error in foreign key constraint of table matrix/system_log:
    FOREIGN KEY (`erp`) REFERENCES `user` (`erp`) ON DELETE CASCADE ON UPDATE RESTRICT
    )
    ENGINE=InnoDB
    DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
    AUTO_INCREMENT=2247:
    Cannot find an index in the referenced table where the
    referenced columns appear as the first columns, or column types
    in the table and the referenced table do not match for constraint.
    Note that the internal storage type of ENUM and SET changed in
    tables created with >= InnoDB-4.1.12, and such columns in old tables
    cannot be referenced by such columns in new tables.
    See http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
    for correct foreign key definition.


    报错原因有如下几种原因:
    1.字段类型不一致
    2.引用的字段和被引用的字段“NULL”属性不一致
    3.为引用的表没有创建索引


    上述报错是因为没有为引用的字段创建索引。

  • 相关阅读:
    [ Linux ] rsync 对异地服务器进行简单同步
    [ Skill ] 遍历整个项目设计的两个思路
    [ Skill ] 不常用的函数笔记
    [ Perl ] Getopt 使用模板
    [ Skill ] 两个 listBox 数据交换的模板
    [ Linux ] "真"后台 nohup
    [ VM ] VirtualBox 压缩 .vdi
    [ Skill ] Layout 工艺移植,还原库调用关系
    win8 hyper-v 禁用不必卸载虚拟机
    BM算法解析(计算机算法-设计与分析导论(第三版))
  • 原文地址:https://www.cnblogs.com/hankyoon/p/5169587.html
Copyright © 2020-2023  润新知