首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> SQL 基礎

SQL CHECK 約束完整指南:單欄/多欄驗證規則、命名約束與跨平台建立刪除語法

     編輯:SQL 基礎

SQL CHECK 約束完整指南


功能說明

CHECK 約束限制欄位值的 合法範圍。單欄 CHECK 限制該欄位值;表級 CHECK 可跨欄位驗證 (如:P_Id > 0 AND City = 'Sandnes')。


CREATE TABLE 時建立 CHECK

單欄驗證 (MySQL)

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 / Access)

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)
);

命名約束 + 多欄驗證 (通用)

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')
);

ALTER TABLE 時新增 CHECK (通用語法)

-- 單欄
ALTER TABLE Persons ADD CHECK (P_Id > 0);

-- 命名 + 多欄
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id > 0 AND City = 'Sandnes');

刪除 CHECK 約束

資料庫語法
SQL Server / Oracle / AccessALTER TABLE Persons DROP CONSTRAINT chk_Person
MySQLALTER TABLE Persons DROP CHECK chk_Person

CHECK 約束是資料庫層級的資料驗證防線,配合應用層驗證雙重保障資料品質。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved