错误代码1005 - 无法创建表
问题描述:
无法将外键添加到我的表中。错误代码1005 - 无法创建表
CREATE TABLE event (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
issued DATETIME NOT NULL,
user VARCHAR(255) NOT NULL,
subject VARCHAR(255) NOT NULL,
attending BIGINT(255) NOT NULL,
attendees VARCHAR(255) NOT NULL,
organisers VARCHAR(255) NOT NULL,
place BIGINT(20) NOT NULL,
started DATETIME NOT NULL,
stopped DATETIME NOT NULL,
content LONGTEXT NOT NULL,
broadcasting TINYINT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (place)
REFERENCES place (id),
FOREIGN KEY (user)
REFERENCES user (username)
)
的地方外键正在执行正常,但一旦我尝试添加用户作为一个外键我不断收到同样的错误:
Error Code: 1005. Can't create table 'iservices.event' (errno: 150)
谁能帮助?
图片用户表: User table
地方台的图片: Place table
反正是有扩大的MySQL Workbench中的错误?
答
能否请您确保user
和place
表存在并具有相应的设置为primary key
列?下面剪断正常工作:
CREATE TABLE user(username VARCHAR(255) PRIMARY KEY);
CREATE TABLE place(id BIGINT(20) PRIMARY KEY);
CREATE TABLE event (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
issued DATETIME NOT NULL,
user VARCHAR(255) NOT NULL,
subject VARCHAR(255) NOT NULL,
attending BIGINT(255) NOT NULL,
attendees VARCHAR(255) NOT NULL,
organisers VARCHAR(255) NOT NULL,
place BIGINT(20) NOT NULL,
started DATETIME NOT NULL,
stopped DATETIME NOT NULL,
content LONGTEXT NOT NULL,
broadcasting TINYINT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (place)
REFERENCES place (id),
FOREIGN KEY (user)
REFERENCES user (username)
)
这里的SQL Fiddle。
+0
它们都被创建。我有添加到我的问题的照片证实了这一点。 – Ellen
为什么用户是varchar? – Sepultura
它指的是一个用户名。 – Ellen
显示两张参考表 – Mihai