Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL Dodaj unikalne ograniczenie

Czasami możesz potrzebować uczynić kolumnę unikalną w MySQL. Możesz to zrobić, dodając ograniczenie kolumny UNIQUE w MySQL. Istnieje kilka sposobów na dodanie ograniczenia unikatowego — za pomocą instrukcji CREATE TABLE lub ALTER TABLE. Oto jak dodać unikalne ograniczenie w MySQL.

MySQL Dodaj unikalne ograniczenie

Oto jak dodać unikalne ograniczenie w MySQL. Ograniczenie Unique można dodać podczas tworzenia tabeli lub po utworzeniu tabeli. Przyjrzymy się obu tym podejściom.

MySQL dodaje unikalne ograniczenie podczas tworzenia tabeli

Oto instrukcja SQL, aby utworzyć ograniczenie UNIQUE podczas tworzenia tabeli

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

W powyższym zapytaniu musisz określić UNIKALNE słowo kluczowe dla definicji kolumny, która ma być unikalna.

Oto przykład tworzenia unikalnego ograniczenia. W poniższym przykładzie dodaliśmy ograniczenie UNIQUE dla order_id kolumna

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    |       |
+----------+---------+------+-----+---------+-------+

Teraz, jeśli spróbujesz wstawić zduplikowane wartości dla identyfikator_zamówienia pojawi się błąd.

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 |
+----------+--------+

Przeczytaj bonus:kolumna zmiany nazwy MySQL

MySQL Dodaj unikalne ograniczenie do istniejącej kolumny

Oto instrukcja SQL, aby utworzyć ograniczenie UNIQUE dla istniejącej kolumny za pomocą instrukcji ALTER TABLE.

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

W powyższym zapytaniu SQL musisz określić nazwę ograniczenia dla ograniczenia UNIQUE po ADD CONSTRAINT i wymień kolumny, które mają być unikatowe w ( )

Oto przykład, jak dodać ograniczenie Unique do istniejącej kolumny

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    |       |
+----------+---------+------+-----+---------+-------+

W powyższym zapytaniu dodaliśmy unikatowe ograniczenie do kolumny kwoty.

Przeczytaj bonus:Jak zduplikować tabelę w MySQL

MySQL Dodaj unikalne ograniczenie wielu kolumn

Oto instrukcja SQL, aby utworzyć ograniczenie UNIQUE do wielu kolumn.

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'

Przeczytaj bonus:Procedura przechowywana MySQL z parametrami

Możesz także dodać UNIQUE CONSTRAINT do wielu kolumn za pomocą instrukcji ALTER TABLE.

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

Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybór pływaka w MySQL

  2. Jak przywrócić pojedynczą tabelę MySQL za pomocą mysqldump?

  3. Konwersja MySQL_TZ()

  4. jak dodać super uprawnienia do bazy mysql?

  5. Jak używać STRCMP() do porównywania 2 ciągów znaków w MySQL?