Rumah > Artikel > pangkalan data > 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 user_id
dikaitkan dengan kunci utama id
dalam jadual utama users
. users
的主表,其中包含id
作为主键,username
和email
作为用户信息字段。同时创建了一个名为orders
的从表,其中包含order_id
作为主键,user_id
作为外键,order_date
和total_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
-- 设置外键约束 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!