Ich weiß nicht, wie ich diese beiden Tabellen verknüpfen soll. Kann jemand helfen? Ich möchte eine Beziehung in diesen beiden Tabellen hinzufügen, aber da ich ID und Präfix als Primärschlüssel verwende, wird es nicht als Fremdschlüssel akzeptiert. Ich erhalte ständig die Meldung „Fremdschlüsseleinschränkung ist fehlerhaft“.
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;
将
ZEROFILL
添加到您的 ID 中: