1.9 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.9 KiB
		
	
	
	
	
	
	
	
title, localeTitle
| title | localeTitle | 
|---|---|
| SQL CHECK Constraint | SQL CHECK约束 | 
CHECK约束用于限制可以放在列中的值范围。
如果在单个列上定义CHECK约束,则它仅允许此列的某些值。
如果在表上定义CHECK约束,它可以根据行中其他列中的值限制某些列中的值。
SQL CHECK CREATE TABLE
创建“Persons”表时,以下SQL在“Age”列上创建CHECK约束。 CHECK约束确保您不能拥有18岁以下的任何人:
MySQL的:
CREATE TABLE Persons ( 
    ID int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    Age int, 
    CHECK (Age>=18) 
 ); 
SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( 
    ID int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    Age int CHECK (Age>=18) 
 ); 
要允许命名CHECK约束,并在多列上定义CHECK约束,请使用以下SQL语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( 
    ID int NOT NULL, 
    LastName varchar(255) NOT NULL, 
    FirstName varchar(255), 
    Age int, 
    City varchar(255), 
    CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') 
 ); 
SQL CHECK ALTER TABLE
要在已创建表时在“Age”列上创建CHECK约束,请使用以下SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons 
 ADD CHECK (Age>=18); 
要允许命名CHECK约束,并在多列上定义CHECK约束,请使用以下SQL语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons 
 ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes'); 
DROP一个CHECK约束
要删除CHECK约束,请使用以下SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons 
 DROP CONSTRAINT CHK_PersonAge; 
MySQL的:
ALTER TABLE Persons 
 DROP CHECK CHK_PersonAge;