محدودیت check در SQL
محدودیت CHECK
محدودیت CHECK داده هایی را که در ستون ها وارد می شوند، به دامنه ای از مقادیر محدود می کند.
اگر محدودیت CHECK را روی یک ستون مجزا تعریف می کنید تنها مقادیر خاصی را برای این ستون می توانید وارد کنید.
اگر محدودیت CHECK را روی یک جدول (ستون های ترکیبی) تعریف کنید این محدودیت می تواند ستون های خاصی از جدول را بسته به مقادیر موجود در دیگر ستون ها در همان سطر محدود کند.
محدودیت CHECK در دستور CREATE TABLE
دستور زیر در ستون P_Id هنگامی که جدول Persons ایجاد می شود محدودیت CHECK را ایجاد می کند. محدودیت CHECK تعیین می کند که ستون P_Id باید مقدار صحیح بیشتر از صفر داشته باشد.
در MySQL:
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)
در SQL Server / Oracle / MS Access:
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
برای تعریف محدودیت CHECK روی ستون های ترکیبی (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید. (منظور این است که داده های چند ستون با هم چک شوند)
در MySQL / SQL Server / Oracle / MS Access:
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)
محدودیت CHECK در دستور ALTER TABLE
برای ایجاد محدودیت CHECK روی ستون P_Id هنگامی که جدول قبلا ایجاد شده از دستور زیر استفاده می کنیم.
در MySQL / SQL Server / Oracle / MS Access:
ADD CHECK (P_Id>0)
برای اضافه کردن محدودیت CHECK روی ستون های ترکیبی( ترکیب دو یا چند ستون) از دستور زیر استفاده کنید(منظور این است که داده های چند ستون با هم چک شوند)
MySQL / SQL Server / Oracle / MS Access:
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
حذف محدودیت CHECK
برای حذف محدودیت CHECK از دستور زیر استفاده می کنیم.
در SQL Server / Oracle / MS Access:
DROP CONSTRAINT chk_Person
در MySQL:
DROP CHECK chk_Person
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 18999
دیدگاهها
با سلام و تشکر از سایت خوبتون.
ببخشید من از دستور check در my sql استفاده کردم ولی برای p_id حتی وقتی مقدار نا منفی هم وارد میکنم قبول میکنه میشه لطفا راهنمایی کنید
با سلام.
احتمالا CHECK اعمال نشده است. توسط دستور SHOW CREATE TABLE table_name میتونید ساختار ایجاد جدول موردنظر رو مشاهده کنید. این دستور نشون میده که ساختار CHECK اعمال شده یا نه.