Главная SQL Check
E-mail Печать PDF

CHECK - устанавливает допустимые значения, которые могут быть вставлены в таблицу.

SQL CHECK Ограничения при CREATE TABLE

Следующие SQL создает CHECK ограничитель в колонке "P_Id", при создании таблицы "Persons" . Данный ограничитель позволяет вставлять в колонку "P_Id" только числа больше нуля.

My SQL:

1
2
3
4
5
6
7
8
CREATE TABLE Persons (
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:

1
2
3
4
5
6
7
CREATE TABLE Persons (
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

Для создания нескольких CHECK используйте следующий синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

1
2
3
4
5
6
7
8
CREATE TABLE Persons (
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')
)

SQL CHECK Ограничения при ALTER TABLE

Следующие SQL создает CHECK ограничитель в колонке "P_Id", когда таблицы "Persons" уже создана. Данный ограничитель позволяет вставлять в колонку "P_Id" только числа больше нуля.

MySQL / SQL Server / Oracle / MS Access:

1
2
ALTER TABLE Persons
ADD CHECK (P_Id>0)

Для создания нескольких CHECK используйте следующий синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

1
2
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

Удаление CHECK

Для удаления ограничителя CHECK используйте следующий SQL:

SQL Server / Oracle / MS Access:

1
2
ALTER TABLE Persons
DROP CONSTRAINT chk_Person

Комментарии

 
+7 #1 alex 2010-07-06 08:55 Спасибо - то, что нужно. Цитировать
 
 
0 #2 Contra 2011-10-04 11:51 У меня не помогло. MySQL 5.1 Цитировать
 
 
+1 #3 Den 2011-11-16 20:43 Конечно, всё это очень познавательно, но беда в том, что ограничения CHECK не работают в MySQL, о чем в мануале есть едва заметное упоминание.
"The CHECK clause is parsed but ignored by all storage engines."
Взамен рекомендуется использовать триггеры.
Цитировать
 

Авторизация

Nice Ajax Poll

Какое из моих расширений самое лучшее?

Статистика



Реклама