Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中间表错误代码1005(150)可以';不能创建外键_Mysql - Fatal编程技术网

MySQL中间表错误代码1005(150)可以';不能创建外键

MySQL中间表错误代码1005(150)可以';不能创建外键,mysql,Mysql,我有两个表,我想与一个中间表连接,以实现多对多关系 第一桌是订票 CREATE TABLE booking ( bookingID INT NOT NULL AUTO_INCREMENT, customerID INT, runID INT, startDate DATE, endDate DATE, dateBookedOn TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (bookin

我有两个表,我想与一个中间表连接,以实现多对多关系

第一桌是订票

CREATE TABLE booking (
    bookingID INT NOT NULL AUTO_INCREMENT,
    customerID INT,
    runID INT,
    startDate DATE,
    endDate DATE,
    dateBookedOn  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (bookingID),
    INDEX idx_start (startDate),
    INDEX idx_end (endDate),
    FOREIGN KEY (runID) REFERENCES Run(RunID),
    FOREIGN KEY (customerID) REFERENCES customer(CustomerID));
第二个是狗

CREATE TABLE dog(
    DogID int(6) NOT NULL,
    DogName varchar(15),
    medicalID int (6),
    Gender character(1) check(gender in ('m', 'f')),
    Age int(2),
    Breed varchar(15),
    size character (1) check(size in ('s', 'm', 'l')),
    primary key (DogID));
中间表如下所示,给出了错误1005(150)。bookingID的外键有问题。但我看不出问题所在。欢迎任何帮助

CREATE TABLE isBooked(
    BookingID int not null,
    DogID int not null,
    foreign key (DogID) references Dog(dogID),
    foreign key (BookingID) references Booking(BookingID));

您的DOG表具有
DogID int(6)NOT NULL,
并且您正试图从
isBooked
引用,它是这样定义的
DogID int NOT NULL,
。类型和大小必须匹配。这两个字段的定义必须相同。虽然一个int是一个int,
int(6)
在dog上仍然是一个不同的定义。dogidy您的dog表有
DogID int(6)NOT NULL,
,您正试图从
isBooked
引用它,它是这样定义的
DogID int NOT NULL,
。类型和大小必须匹配。这两个字段的定义必须相同。虽然int是int,
int(6)
仍然是dog.DogID上的不同定义