sql >> Database teknologi >  >> RDS >> Mysql

MySQL Tilføj unik begrænsning

Nogle gange skal du muligvis gøre kolonne unik i MySQL. Du kan gøre dette ved at tilføje en UNIK kolonnebegrænsning i MySQL. Der er et par måder at tilføje unikke begrænsninger - ved hjælp af CREATE TABLE eller ALTER TABLE sætninger. Sådan tilføjer du en unik begrænsning i MySQL.

MySQL Tilføj unik begrænsning

Sådan tilføjer du en unik begrænsning i MySQL. Du kan tilføje en unik begrænsning, når du opretter tabel, eller efter du har oprettet tabel. Vi vil se på begge disse tilgange.

MySQL Tilføj unik begrænsning under oprettelse af tabel

Her er SQL-sætningen til at skabe UNIK begrænsning, når du opretter tabel

CREATE TABLE table_name(
    ...,
    column_name data_type UNIQUE,
    ...
)

I ovenstående forespørgsel skal du angive UNIKT nøgleord for definitionen af ​​kolonne, som du ønsker skal være unik.

Her er et eksempel for at skabe en unik begrænsning. I det følgende eksempel har vi tilføjet UNIQUE constraint for order_id kolonne

mysql> create table recent_orders
     (
     order_id int UNIQUE,
     amount int
     );

mysql> describe recent_orders;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | YES  | UNI | NULL    |       |
| amount   | int(11) | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+

Hvis du nu prøver at indsætte duplikerede værdier for ordre_id kolonne vil du få en fejl.

mysql> insert into recent_orders(order_id, amount) values(1, 100),(1,250);
ERROR 1062 (23000): Duplicate entry '1' for key 'order_id'

mysql> insert into recent_orders(order_id, amount) values(1, 100),(2,250);

mysql> select * from recent_orders;
+----------+--------+
| order_id | amount |
+----------+--------+
|        1 |    100 |
|        2 |    250 |
+----------+--------+

Bonus Læs:MySQL Omdøb kolonne

MySQL Tilføj unik begrænsning til eksisterende kolonne

Her er SQL-sætningen til at skabe UNIK begrænsning for en eksisterende kolonne ved hjælp af ALTER TABLE-sætning.

ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... );

I ovenstående SQL-forespørgsel skal du angive et constraint_name for UNIK begrænsning efter ADD CONSTRAINT, og angiv de kolonner, som du vil være unikke i ( )

Her er et eksempel på at tilføje en unik begrænsning til eksisterende kolonne

mysql> alter table recent_orders add constraint unique_amount UNIQUE (amount);

mysql> describe recent_orders;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | YES  | UNI | NULL    |       |
| amount   | int(11) | YES  | UNI | NULL    |       |
+----------+---------+------+-----+---------+-------+

I ovenstående forespørgsel har vi tilføjet en unik begrænsning af beløbskolonnen.

Bonuslæser:Sådan dublerer du tabel i MySQL

MySQL Tilføj unikke begrænsninger flere kolonner

Her er SQL-sætningen til at skabe UNIK begrænsning til flere kolonner.

mysql> create table old_orders
     (
     order_id int,
     amount int,
     CONSTRAINT u_orders UNIQUE (order_id,amount)
     );


mysql> describe old_orders;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| order_id | int(11) | YES  | MUL | NULL    |       |
| amount   | int(11) | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+


mysql> insert into old_orders(order_id, amount) values(1, 100),(1,100);
ERROR 1062 (23000): Duplicate entry '1-100' for key 'u_orders'

Bonuslæsning:MySQL-lagret procedure med parametre

Du kan også tilføje UNIQUE CONSTRAINT til flere kolonner ved hjælp af ALTER TABLE-sætningen.

alter table old_orders add constraint unique_orders UNIQUE (order_id,amount);

Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. 4 måder at ændre tidszonen i Oracle

  2. Kører Total-Order By Date i SQLite

  3. Hvordan ændrer man tegnkodningen af ​​en postgres-database?

  4. Hvordan tæller man antallet af forekomster af en bestemt understreng i en SQL-varchar?