Rumah > pangkalan data > tutorial mysql > Bagaimanakah MySQL Mengendalikan Kekangan Unik dan Nilai Null?

Bagaimanakah MySQL Mengendalikan Kekangan Unik dan Nilai Null?

Mary-Kate Olsen
Lepaskan: 2024-12-22 19:13:10
asal
205 orang telah melayarinya

How Does MySQL Handle Unique Constraints and Null Values?

Kekangan Unik dan Nilai Null dalam MySQL

Dalam reka bentuk pangkalan data, kekangan unik digunakan untuk memastikan bahawa lajur atau set lajur tertentu dalam jadual mengandungi hanya nilai yang berbeza. Walau bagaimanapun, kadangkala wajar untuk membenarkan nilai nol dalam lajur yang mempunyai kekangan unik. Dalam MySQL, ini sememangnya mungkin.

MySQL membenarkan berbilang baris mempunyai nilai nol dalam lajur dengan kekangan unik. Ini bermakna nilai nol pendua mungkin dalam lajur tanpa melanggar kekangan.

Untuk menggambarkan tingkah laku ini, pertimbangkan contoh berikut:

CREATE TABLE table1 (x INT NULL UNIQUE);
INSERT table1 VALUES (1);
INSERT table1 VALUES (1);   -- Duplicate entry '1' for key 'x'
INSERT table1 VALUES (NULL);
INSERT table1 VALUES (NULL);
SELECT * FROM table1;
Salin selepas log masuk

Apabila anda melaksanakan pernyataan di atas, MySQL memasukkan tiga baris ke dalam jadual. Pernyataan sisipan pertama berjaya kerana nilai 'x' adalah unik (1). Pernyataan sisipan kedua gagal kerana nilai 'x' (1) sudah wujud dan ia melanggar kekangan unik. Walau bagaimanapun, pernyataan sisipan ketiga dan keempat berjaya kerana nilai 'x' adalah batal, yang dibenarkan di bawah kekangan unik dalam MySQL.

Hasil kenyataan SELECT akan memaparkan baris berikut:

x
NULL
NULL
1
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa tingkah laku ini khusus untuk MySQL. Pangkalan data lain, seperti SQL Server 2005 atau lebih lama, tidak membenarkan berbilang nilai nol dalam lajur dengan kekangan unik. Mereka biasanya membenarkan hanya satu nilai nol dalam senario sedemikian.

Atas ialah kandungan terperinci Bagaimanakah MySQL Mengendalikan Kekangan Unik dan Nilai Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan