Bagaimanakah saya boleh menambah perhubungan pada kedua-dua jadual ini apabila terdapat id dan awalan dalam kunci utama?
P粉675258598
P粉675258598 2023-09-15 15:03:48
0
1
556

Saya tidak tahu bagaimana untuk menghubungkan kedua-dua jadual ini. Ada sesiapa boleh tolong? Saya ingin menambah perhubungan dalam kedua-dua jadual ini tetapi kerana saya menggunakan id dan awalan sebagai kunci utama, ia tidak menerimanya sebagai kunci asing. Saya terus mendapat "Kekangan kunci asing salah bentuk".

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粉675258598
P粉675258598

membalas semua(1)
P粉494151941

Tambahkan ZEROFILL pada ID anda:

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)
  );
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan