Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mengaitkan kunci asing MySQL dan kunci utama secara automatik?

Bagaimana untuk mengaitkan kunci asing MySQL dan kunci utama secara automatik?

王林
王林asal
2024-03-15 12:54:041014semak imbas

Bagaimana untuk mengaitkan kunci asing MySQL dan kunci utama secara automatik?

Bagaimana untuk mengaitkan kunci asing MySQL dan kunci primer secara automatik?

Dalam pangkalan data MySQL, kunci asing dan kunci utama adalah konsep yang sangat penting. Ia boleh membantu kami mewujudkan hubungan antara jadual yang berbeza dan memastikan integriti dan konsistensi data. Dalam proses aplikasi sebenar, selalunya perlu untuk mengaitkan kunci asing secara automatik kepada kunci utama yang sepadan untuk mengelakkan ketidakkonsistenan data. Berikut akan memperkenalkan cara melaksanakan fungsi ini melalui contoh kod tertentu.

Pertama, kita perlu mencipta dua jadual, satu sebagai jadual induk dan satu lagi sebagai jadual hamba. Cipta kunci utama dalam jadual utama dan cipta kunci asing daripada jadual untuk mengaitkan kunci utama jadual utama.

-- 创建主表
CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

-- 创建从表
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT,
    order_date DATE,
    total_amount DECIMAL(10, 2),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

Dalam kod di atas, kami telah mencipta jadual utama bernama users yang mengandungi id sebagai kunci utama, username dan e-mel sebagai medan maklumat pengguna. Pada masa yang sama, jadual hamba bernama orders dibuat, yang mengandungi order_id sebagai kunci utama, user_id sebagai kunci asing dan tarikh_pesanan dan jumlah_jumlah sebagai medan maklumat pesanan. Kunci asing user_id dikaitkan dengan kunci utama id dalam jadual utama users. users的主表,其中包含id作为主键,usernameemail作为用户信息字段。同时创建了一个名为orders的从表,其中包含order_id作为主键,user_id作为外键,order_datetotal_amount作为订单信息字段。外键user_id与主表users中的主键id进行关联。

接下来,插入数据到主表和从表中,确保外键与对应的主键有关联关系。

-- 插入数据到主表
INSERT INTO users (id, username, email) VALUES (1, 'Alice', 'alice@example.com');
INSERT INTO users (id, username, email) VALUES (2, 'Bob', 'bob@example.com');

-- 插入数据到从表
INSERT INTO orders (order_id, user_id, order_date, total_amount) VALUES (101, 1, '2022-01-01', 100.00);
INSERT INTO orders (order_id, user_id, order_date, total_amount) VALUES (102, 2, '2022-01-02', 150.00);

通过上面的插入操作,我们确保从表中的user_id与主表中的id

Seterusnya, masukkan data ke dalam jadual induk dan jadual hamba untuk memastikan kunci asing berkaitan dengan kunci utama yang sepadan.

-- 设置外键约束
ALTER TABLE orders ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES users(id) ON UPDATE CASCADE ON DELETE CASCADE;

Melalui operasi sisipan di atas, kami memastikan bahawa user_id dalam jadual hamba mempunyai hubungan yang sepadan dengan id dalam jadual utama, sekali gus merealisasikan perkaitan automatik kunci asing dan kunci primer .

Akhir sekali, jika anda perlu melakukan kemas kini atau memadam operasi dalam pangkalan data, anda juga perlu memberi perhatian kepada perkaitan antara kunci asing dan kunci primer untuk memastikan integriti dan konsistensi data. Operasi perkaitan dan lata automatik boleh dicapai dengan menetapkan kekangan kunci asing Kaedah khusus adalah seperti berikut:

rrreee

Melalui tetapan di atas, apabila kunci utama dalam jadual utama dikemas kini atau dipadamkan, kunci asing dalam jadual hamba akan. dikaitkan secara automatik dan Operasi sepadan untuk memastikan integriti perhubungan persatuan. 🎜🎜Ringkasnya, mengenai perkaitan automatik kunci asing MySQL dan kunci utama, kami boleh mencapai perkaitan antara data dengan menetapkan struktur jadual dan kekangan kunci asing secara munasabah, dan memastikan ketekalan dan integriti operasi data. Semoga kandungan di atas dapat membantu anda! 🎜

Atas ialah kandungan terperinci Bagaimana untuk mengaitkan kunci asing MySQL dan kunci utama secara automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn