droos02800 2014-11-20 18:37
浏览 123
已采纳

在MySQL中创建外键

I'm trying to link two tables together via a foreign key in MySQL. The CLIENTS table should be linked to another table (BIDS) with the Client ID attribute.

CREATE TABLE CLIENTS (
 CLIENTID            NUMERIC(3) NOT NULL,
 FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
 PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
 );

However, MySQL returns this error when I try to execute the code.

#1005 - Can't create table 'CLIENTS' (errno: 150)

It doesn't seem to be a syntax error, so does anyone know what's causing the issue or how can I fix it?

  • 写回答

1条回答 默认 最新

  • donvo24600 2014-11-20 19:32
    关注

    When creating a table with a primary key using multiple columns they have to be specified in the query -

    CREATE TABLE CLIENTS (
     CLIENTID NUMERIC(3) NOT NULL,
     EMAILADDRESSES CHAR(64),
     PHONENUMBERS VARCHAR(16),
     CONTACTS VARCHAR(32), 
     FOREIGN KEY(CLIENTID) REFERENCES BIDS(CLIENTID),
     CONSTRAINT key_name PRIMARY KEY(CLIENTID, EMAILADDRESSES,PHONENUMBERS,CONTACTS)
    );
    

    You also must specify a name for a multiple column primary key. Why you would want all of those columns as a key is a mystery though.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失