گروه مقاله : SQL Server
تاريخ انتشار : 1394/02/05 - 10:51
كد :247

محدودیت UNIQUE در SQL

محدودیت UNIQUE هر رکورد از جدول یک پایگاه داده را به صورت یکتایی متمایز می کند.
محدودیت های UNIQUE و PRIMARY KEY  هر دو با هم یکتایی یک ستون یا مجموعه ای از ستون ها را تضمین می کنند.
محدودیت PRIMARY KEY به صورت اتوماتیک یک محدودیت UNIQUE را در خود تعریف می کند.
دقت کنید که هر جدول می تواند مقدار زیادی UNIQUE داشته باشد اما تنها یک PRIMARY KEY  می تواند داشته باشد.
محدودیت UNIQUE در CREATE TABLE (ایجاد جدول) :
مثال SQL زیر یک محدودیت UNIQUE را روی ستون "P_Id" در زمان ساختن جدول "Persons" ایجاد می کند:
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
برای نام گذاری یک محدودیت UNIQUE  و برای تعریف کردن یک محدودیت UNIQUE  روی چندین ستون از دستور SQL زیر استفاده کنید (منظور این است که داده های چند ستون روی هم رفته منحصر به فرد باشند):
 
 
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
 
محدودیت UNIQUE در ALTER TABLE (تغییر جدول) :
برای ایجاد یک محدودیت UNIQUE روی ستون "P_Id" در زمانیکه جدول از قبل ساخته شده است،از دستور SQL زیر استفاده کنید :
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD UNIQUE (P_Id)
برای نام گذاری یک محدودیت UNIQUE  و برای تعریف کردن یک محدودیت UNIQUE  روی چندین ستون از دستور SQL زیر استفاده کنید (منظور این است که داده های چند ستون روی هم رفته منحصر به فرد باشند):
 
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
 
برداشتن یک محدودیت UNIQUE :
برای برداشتن یک محدودیت UNIQUE از دستور SQL زیر استفاده کنید :
MySQL:
ALTER TABLE Persons
DROP INDEX uc_PersonID
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
نظرات كاربران :