mysql创建表FOREIGN键的语法

时间:2017-04-22 23:14:58

标签: mysql foreign-keys primary-key

  1. 我试图创建两个桌子' ROOMS'和'有'
  2. ROOM包含PRIMARY KEY' type'
  3. 包含FOREIGN KEY` room-type' < ---这是问题
  4. 我的sql代码不接受第28行

     FOREIGN KEY(`room-type`) REFERENCES ROOM(type)
    

    enter image description here

    enter image description here

    我完全不知道为什么这不会起作用。看起来很简单。任何帮助我都非常感激。我绝对难过。

2 个答案:

答案 0 :(得分:0)

DOH! ENUM!= VARCHAR(50)..lol在我发布较小的代码部分

时看到了它

答案 1 :(得分:0)

外键只能引用完全相同数据类型的列。

你的房间类型列是varchar(50)它引用的类型列是ENUM,它在内部存储为int。

例外:

VARCHAR(50)可以引用不同长度的字符串,如VARCHAR(100)或VARCHAR(25)或其他字符串。但是字符集的差异将被视为不同的数据类型。

整数"大小"没有意义,因此INT(11)可以引用INT(18)。无论size参数如何,两者都是32位整数。但INT不能引用INT UNSIGNED或BIGINT或其他。