我不知道如何链接这两个表。有人可以帮忙吗? 我想在这两个表中添加关系,但由于我使用 id 和前缀作为主键,因此它不接受它作为外键。我总是收到“外键约束格式不正确”。
CREATE TABLE Donor ( id int(3) ZEROFILL NOT NULL AUTO_INCREMENT, prefix varchar(5) NOT NULL DEFAULT 'D', name varchar(50) NOT NULL, PRIMARY KEY (id, prefix) ); INSERT INTO Donor (name) VALUES ('Product #1'), ('Product #2'); SELECT CONCAT(prefix,id) as "DonorID", name FROM Donor; CREATE TABLE Blood_Type ( btid int(3) ZEROFILL NOT NULL AUTO_INCREMENT, btprefix varchar(5) NOT NULL DEFAULT 'BT', id int(3) NOT NULL, prefix varchar(5) NOT NULL DEFAULT 'D', name varchar(50) NOT NULL, PRIMARY KEY (btid, btprefix), foreign key (id, prefix) references Donor(id, prefix) ); INSERT INTO Blood_Type (name) VALUES ('Blood #1'), ('Blood #2'); SELECT CONCAT(btprefix, btid) as "bloodID", name FROM Blood_Type;
P粉4941519412023-09-16 09:31:19
将 ZEROFILL
添加到您的 ID 中:
CREATE TABLE Blood_Type ( btid int(3) ZEROFILL NOT NULL AUTO_INCREMENT, btprefix varchar(5) NOT NULL DEFAULT 'BT', id int(3) ZEROFILL NOT NULL, prefix varchar(5) NOT NULL DEFAULT 'D', name varchar(50) NOT NULL, PRIMARY KEY (btid, btprefix), foreign key (id, prefix) references Donor(id, prefix) );