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