Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mewujudkan hubungan antara jadual MySQL menggunakan kekangan utama asing?

Bagaimana untuk mewujudkan hubungan antara jadual MySQL menggunakan kekangan utama asing?

Linda Hamilton
Linda Hamiltonasal
2025-01-24 14:42:39772semak imbas

How to Create Relationships Between MySQL Tables Using FOREIGN KEY Constraints?

Menguasai Perhubungan MySQL dengan Kekangan KUNCI ASING

MySQL, sistem pengurusan pangkalan data hubungan terkemuka (RDBMS), sangat bergantung pada mewujudkan hubungan antara jadual untuk pengurusan data yang cekap. Artikel ini menumpukan pada mewujudkan perhubungan, khususnya memautkan accounts dan customers jadual, memperuntukkan setiap akaun kepada pelanggan unik.

Batu asas proses ini ialah kekangan KUNCI ASING. Mari kita jelaskan bagaimana untuk melaksanakan ini dalam MySQL:

<code class="language-sql">CREATE TABLE accounts (
    account_id INT NOT NULL AUTO_INCREMENT,
    customer_id INT(4) NOT NULL,
    account_type ENUM('savings', 'credit') NOT NULL,
    balance FLOAT(9) NOT NULL,
    PRIMARY KEY (account_id),
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
) ENGINE=INNODB;</code>

Barisan utama, FOREIGN KEY (customer_id) REFERENCES customers(customer_id), mentakrifkan perhubungan. Ia menentukan bahawa customer_id dalam jadual accounts mesti sepadan dengan customer_id yang sah dalam jadual customers.

Kekangan ini mengekalkan integriti rujukan, memastikan ketepatan dan ketekalan data. Ia menghalang penciptaan rekod "anak yatim" (akaun tanpa pelanggan yang sepadan) dan mengekalkan perhubungan data.

Pertimbangan Penting: Enjin MyISAM MySQL tidak mempunyai sokongan FOREIGN KEY. Untuk jadual MyISAM, kaedah alternatif seperti pencetus diperlukan untuk meniru fungsi KUNCI ASING.

Atas ialah kandungan terperinci Bagaimana untuk mewujudkan hubungan antara jadual MySQL menggunakan kekangan utama asing?. 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