首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误代码1005 -无法创建表

问错误代码1005 -无法创建表
EN

Stack Overflow用户
提问于 2017-02-24 13:20:36
回答 4查看 182关注 0票数 0

在我的桌子上加一个外键有困难。

代码语言:javascript
复制
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)
)

place的外键执行得很好,但是一旦尝试将用户添加为外键,我就会得到相同的错误:

错误代码: 1005。无法创建表“iservices.event”(errno: 150)

有人能帮忙吗?

用户表图片:用户表

位置表图片:放置表

在MySQL工作台中是否存在扩展错误的问题?

EN

回答 4

Stack Overflow用户

发布于 2017-02-24 13:28:45

外键必须是独一无二,所以要使用户名惟一(这可能不是最好的主意),或者选择与用户id不同的东西。

我的建议是:向用户表中添加一个主自动增量键,并将其用作外键。

票数 0
EN

Stack Overflow用户

发布于 2017-02-24 13:35:40

  1. 引用的列必须是唯一的。在你的情况下没关系。
  2. 子表和父表中的列必须具有相同的类型。在你的情况下,它们是不同的。
票数 0
EN

Stack Overflow用户

发布于 2017-02-24 13:36:44

请确保存在user表和place表,并将相应的列设置为primary key。下面的狙击手工作正常:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42439687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档