通过论坛搜索,尝试了一堆解决方案,但似乎没有任何工作。下面是一小段代码和我使用的在线编译器。
我得到(错误号:150“外键约束的格式不正确”)。请注意,每当我尝试添加外键时,此错误都会出现在代码中的所有表中。
在线编译器:https ://paiza.io/en/languages/mysql
代码:
-- CREATING AND INSERTING VALUES INTO THE BOOKINGS TABLE WITHOUT FK--
create table Bookings(
Booking_ID varchar(9) NOT NULL,
Client_ID varchar(6) NOT NULL,
PT_ID varchar(4) NOT NULL,
Booking_Date Date NOT NULL,
Start_Time time NOT NULL,
End_Time time NOT NULL,
Focus_ID varchar(3) NOT NULL,
Staff_ID varchar(4) NOT NULL,
PRIMARY KEY (Booking_ID)
);
INSERT INTO Bookings
VALUES
('B00000001','C00001','T001','2020-01-1','19:30:00','20:15:00','F01','S002'),
('B00000002','C00023','T001','2020-01-1','09:00:00','09:30:00','F02','S001'),
('B00000007','C00156','T003','2020-01-1','10:00:00','11:00:00','F04','S003');
-- CREATING AND INSERTING VALUES INTO THE CLIENT TABLE --
create table Client(
Client_ID varchar(6) NOT NULL,
Client_Name varchar(20) NOT NULL,
Height_cm decimal(5,2) NOT NULL,
Weight_kg decimal(6,2) NOT NULL,
Ph_Num varchar(14) NOT NULL,
PRIMARY KEY (Client_ID),
FOREIGN KEY (Client_ID)
REFERENCES Bookings(Client_ID)
);
-- ALTERING BOOKINGS TABLE WITH FOREIGN KEYS --
ALTER TABLE Bookings
ADD
FOREIGN KEY (Client_ID)
REFERENCES Client(Client_ID);
正如我在标题中提到的,代码在网上运行良好,但在 Linux 终端上通过 MariaDB 编译时失败。
MariaDB 服务器版本为 10.3.17-MariaDB
我究竟做错了什么?任何帮助将不胜感激。