Понякога може да се наложи да направите колоната уникална в 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!