【问题标题】:InnoDB Documentation Supports transactions, row-level locking, and foreign keysInnoDB 文档支持事务、行级锁定和外键
【发布时间】:2014-04-29 12:24:14
【问题描述】:

我正在尝试在 phpmyadmin 中创建以下表格,但出现上述错误

-------------------------------------------------- --- -- 创建县表 -------------------------------------------------- --- 如果不存在则创建表 SecretGarden.County ( co_id varchar (8) NOT NULL UNIQUE , co_desc VARCHAR(50), st_date 日期, end_date 日期, 主键(co_id)); -------------------------------------------------- --- -- 创建登录表 -------------------------------------------------- --- 如果不存在则创建表 SecretGarden.login ( email_id varchar (100) NOT NULL UNIQUE, 密码 VARCHAR(50), st_date 日期, end_date 日期, 主键(email_id)); -------------------------------------------------- --- -- 创建地址表 -------------------------------------------------- --- 如果不存在则创建表 SecretGarden.address ( add_id int (8) NOT NULL AUTO_INCREMENT , 地址1 VARCHAR(50), 地址2 VARCHAR(50), 镇VARCHAR(50), co_id varchar (8), st_date 日期, end_date 日期, 主键(add_id), 约束 fk_coid 外键(co_id) 参考县(co_id)); -------------------------------------------------- --- -- 创建 StaffRole 表 -------------------------------------------------- --- 如果不存在则创建表 SecretGarden.staffrole ( Staffrole_id int (8) NOT NULL AUTO_INCREMENT , Staffrole_desc VARCHAR(50), st_date 日期, end_date 日期, 主键(staffrole_id));

以上所有操作都很完美,但是当我尝试创建下一个表时,我得到了上述错误

-------------------------------------------------- --- -- 创建员工表 -------------------------------------------------- --- 如果不存在则创建表 SecretGarden.staff ( staff_id int (8) NOT NULL AUTO_INCREMENT , fname VARCHAR(50), lname VARCHAR(50), email_id varchar (100), home_no INT (20), mobile_no INT (20), add_id INT (8), Staffrole_id INT (8), st_date 日期, end_date 日期, 主键(staff_id), 约束 fk_emailid 外键 (email_id) 参考 SecretGarden.login(email_id), 约束 fk_addid 外键 (add_id) 参考 SecretGarden.address(add_id), 约束 fk_staffrole 外键(staffrole_id) 参考 SecretGarden.staffrole(staffrole_id));


任何帮助将非常感激 雷切尔

【问题讨论】:

  • 你的表是 Innodb 吗? MySQL 5.6 之前的默认存储引擎是 MyISAM。确保在创建表语句中指定 Innodb。因为 innodb 只支持外键约束。基本上在每条create table语句的最后加上ENGINE=InnoDB

标签: mysql innodb


【解决方案1】:

问题是我没有给每个约束一个单独的名称
我没有意识到它们对于整个数据库都是独一无二的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多