Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Добавяне на уникално ограничение

Понякога може да се наложи да направите колоната уникална в MySQL. Можете да направите това, като добавите ограничение на UNIQUE колона в MySQL. Има няколко начина да добавите уникално ограничение – като използвате изрази CREATE TABLE или ALTER TABLE. Ето как да добавите уникално ограничение в MySQL.

Добавяне на уникално ограничение в MySQL

Ето как да добавите уникално ограничение в MySQL. Можете да добавите уникално ограничение, когато създавате таблица или след като сте създали таблица. Ще разгледаме и двата подхода.

MySQL Добавяне на уникално ограничение при създаване на таблица

Ето SQL израза за създаване на ограничение UNIQUE, когато създавате таблица

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

В горната заявка трябва да посочите UNIQUE ключова дума за дефиницията на колона, която искате да бъде уникална.

Ето пример за създаване на уникално ограничение. В следващия пример сме добавили ограничение UNIQUE за order_id колона

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

Сега, ако се опитате да вмъкнете дублиращи се стойности за order_id колона ще получите грешка.

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

Бонус четене:MySQL Преименуване на колона

MySQL Добавяне на уникално ограничение към съществуваща колона

Ето SQL израза за създаване на ограничение UNIQUE за съществуваща колона, използвайки оператор ALTER TABLE.

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

В горната SQL заявка трябва да посочите име_на_ограничение за ограничение UNIQUE след ADD CONSTRAINT и избройте колоните, които искате да бъдат уникални в ( )

Ето пример за добавяне на уникално ограничение към съществуваща колона

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

В горната заявка сме добавили уникално ограничение към колоната за количество.

Бонус четене:Как да дублирам таблица в MySQL

MySQL Добавяне на уникално ограничение, множество колони

Ето SQL израза за създаване на УНИКАЛНО ограничение за множество колони.

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'

Бонус четене:MySQL Съхранена процедура с параметри

Можете също да добавите UNIQUE CONSTRAINT към множество колони, като използвате израза ALTER TABLE.

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

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да търсите точно съвпадаща дума с MySql Query

  2. MySQL брой елементи в клауза

  3. Как да планирате MySQL заявка?

  4. MySql:MyISAM срещу Inno DB!

  5. YEAR() Примери – MySQL