ADD CONSTRAINT UNIQUE();"."/> ADD CONSTRAINT UNIQUE();".">

Rumah  >  Artikel  >  pangkalan data  >  apakah mysql unik

apakah mysql unik

青灯夜游
青灯夜游asal
2023-04-19 15:30:186032semak imbas

Dalam mysql, unik merujuk kepada "kekangan unik", yang bermaksud bahawa nilai medan dalam semua rekod tidak boleh muncul berulang kali. Terdapat berbilang kekangan unik dalam jadual, dan lajur tempat kekangan unik ditetapkan dibenarkan untuk mempunyai nilai nol, tetapi hanya boleh ada satu nilai nol. Sintaks untuk menambah kekangan unik semasa mengubah suai jadual ialah "UBAH JADUAL fbf2ec3cb1d5ceee39123b2461e4da77 TAMBAH KEKANGAN 43a3dc6caf986695ba4be7385830277e UNIK(671f83e3d193513d25249c8481643bbb);".

apakah mysql unik

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Dalam mysql, unik merujuk kepada "kekangan unik".

Kekangan unik MySQL (UNIQUE KEY)

Kekangan unik MySQL (Unique Key) bermakna nilai medan dalam semua rekod tidak boleh Berulang kali. Contohnya, selepas menambah kekangan unik pada medan id, nilai id setiap rekod adalah unik dan tidak boleh diulang. Jika nilai id salah satu rekod ialah '0001', maka tidak boleh ada rekod lain dengan nilai id '0001' dalam jadual.

Kekangan unik adalah serupa dengan kekangan utama utama kerana kedua-duanya memastikan keunikan lajur. Perbezaannya ialah terdapat berbilang kekangan unik dalam jadual, dan lajur tempat kekangan unik ditetapkan dibenarkan untuk mempunyai nilai nol, tetapi hanya boleh ada satu nilai nol. Hanya terdapat satu kekangan kunci utama dalam jadual, dan nilai nol tidak dibenarkan. Sebagai contoh, dalam jadual maklumat pengguna, untuk mengelakkan nama pengguna pendua dalam jadual, nama pengguna boleh ditetapkan sebagai kekangan unik.

Tetapkan kekangan unik semasa membuat jadual

Kekangan unik boleh ditetapkan terus semasa mencipta jadual, biasanya pada lajur lain kecuali kunci utama.

Gunakan kata kunci UNIK secara langsung selepas mentakrifkan lajur untuk menentukan kekangan unik Format sintaks adalah seperti berikut:

<字段名> <数据类型> UNIQUE

Contoh 1:

Buat jadual data. tb_dept2 dan nyatakan jabatan Nama itu unik, dan pernyataan SQL serta hasil yang dijalankan adalah seperti berikut.

mysql> CREATE TABLE tb_dept2
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.37 sec)

mysql> DESC tb_dept2;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(40) | YES  | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.08 sec)

Tambahkan kekangan unik semasa mengubah suai jadual

Format sintaks untuk menambah kekangan unik semasa mengubah suai jadual ialah:

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);

Contoh 2:

Ubah suai jadual data tb_dept1 untuk menentukan nama jabatan yang unik Penyataan SQL dan hasil yang dijalankan adalah seperti berikut.

mysql> ALTER TABLE tb_dept1
    -> ADD CONSTRAINT unique_name UNIQUE(name);
Query OK, 0 rows affected (0.63 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   | UNI | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

Padamkan kekangan unik

Format sintaks untuk memadamkan kekangan unik dalam MySQL adalah seperti berikut:

ALTER TABLE <表名> DROP INDEX <唯一约束名>;

Contoh 3 :

Padamkan kekangan unik unique_name dalam jadual data tb_dept1 Penyataan SQL dan hasil yang dijalankan adalah seperti berikut.

mysql> ALTER TABLE tb_dept1
    -> DROP INDEX unique_name;
Query OK, 0 rows affected (0.20 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

[Cadangan berkaitan: tutorial video mysql]

Atas ialah kandungan terperinci apakah mysql unik. 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