无法使用不同的列标签创建外键引用

时间:2015-08-19 13:26:12

标签: mysql

我正在创建架构“无法添加外键约束”错误,我得到了。

查询是:

CREATE database sample;
USE sample;

CREATE TABLE sys_admin_user_t (
  sys_admin_id MEDIUMINT NOT NULL,
  admin_name VARCHAR(255) NOT NULL,
  admin_password VARCHAR(255) NOT NULL,
  PRIMARY KEY (sys_admin_id)
);

CREATE TABLE sys_user_roles_t (
  role_id MEDIUMINT NOT NULL,
  privilege_id MEDIUMINT NOT NULL,
  role_name VARCHAR(255) NOT NULL,
  role_description VARCHAR(255) NOT NULL,
  created_by MEDIUMINT NOT NULL,
  created_date DATE NOT NULL,
  modified_by MEDIUMINT NOT NULL,
  FOREIGN KEY (privilege_id) REFERENCES privileges_t (privilege_id),
  FOREIGN KEY (created_by) REFERENCES sys_admin_user_t(sys_admin_id),
  FOREIGN KEY (modified_by) REFERENCES sys_admin_user_t(sys_admin_id),
  PRIMARY KEY (role_id)
);

请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

在以下情况下可能会发生这种情况:

  • 您不创建表privileges_t
  • 在您的表格中,字段privilege_id
  • 中的主键不存在
  • 表sys_user_roles_t中的字段privilege_id与表privileges_t
  • 中的数据类型不完全相同
  • 您没有将InnoDB用作所有表格的引擎

要找到具体的错误,请执行以下操作:

SHOW ENGINE INNODB STATUS\G