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 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?