簡體   English   中英

MySQL試圖創建具有約束外鍵的表

[英]mySQL trying to create table with constraint foreign key

我有這個簡單的代碼

create table transport (
CODE varchar (10),
TDATE date,
ID integer,
PNAME varchar (10),
primary key (CODE,TDATE,ID,PNAME) );

create table planes (
NAME varchar (10),
NSEATS integer,
FSEATS integer,
ECSEATS integer,
primary key (NAME), 
CONSTRAINT foreign key(NAME) references transport(PNAME));

但這並不能讓我做外鍵事情,因為它說的是errno:150“外鍵約束的格式不正確

任何提示贊賞,謝謝

在這種情況下,使用復合主鍵是不合理的。 如果需要外鍵引用,則需要引用主鍵中的所有列。 因此,此版本更簡單:

create table transport (
    transportId int not null auto_increment primary key,
    CODE varchar (10),
    TDATE date,
    ID integer,
    PNAME varchar (10),
    unique (CODE, TDATE, ID, PNAME)
);

create table planes (
    planeId int not null auto_increment primary key,
    NAME varchar (10),
    NSEATS integer,
    FSEATS integer,
    ECSEATS integer,
    primary key (NAME), 
    transportId int,
    CONSTRAINT foreign key(transportId) references transport(transportId)
);

規則是:一個表中的外鍵指向另一表中的主鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM