UNIQUE (UNIQUE)
می خواهی مقدار تکراری وارد نشود؟ «قید UNIQUE در SQL» تضمین می کند هر مقدار در ستون یکتا باشد. «قید (Constraint)» یعنی قانون روی جدول. مثل شماره دانش آموزی که نباید تکراری شود.
تعریف ساده قید UNIQUE
قید UNIQUE از ورود مقدار تکراری جلوگیری می کند. بنابراین هر سطر باید مقدار متفاوت داشته باشد. اما بر خلاف «کلید اصلی»، می تواند مقدار خالی نپذیرد یا بپذیرد بسته به سیستم.
UNIQUE هنگام ساخت جدول (CREATE TABLE)
SQL Server / Oracle / MS Access
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MySQL: تعریف قید پایین جدول
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);
نام گذاری قید و چندستونه
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID, LastName)
);
افزودن UNIQUE به جدول موجود (ALTER TABLE)
افزودن ساده روی یک ستون
ALTER TABLE Persons
ADD UNIQUE (ID);
افزودن با نام قید و چند ستون
ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID, LastName);
حذف قید UNIQUE
MySQL
ALTER TABLE Persons
DROP INDEX UC_Person;
SQL Server / Oracle / MS Access
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;
نکته: برای ترکیب نتایج بدون حذف تکراری ها، به UNION ALL نگاه کن. همچنین صفحه UPDATE بعد از این مبحث می آید. راهنمای کامل UNIQUE همیشه در دسترس است.
جمع بندی سریع
- UNIQUE از تکراری بودن مقدار جلوگیری می کند.
- می توان آن را تک ستونه یا چندستونه گذاشت.
- می توان نام قید را مشخص کرد.
- حذف در MySQL با DROP INDEX است.
- حذف در SQL Server/Oracle با DROP CONSTRAINT است.