在 MySQL 中,CHECK 約束用于限制表中列的值范圍。它可以確保列中只包含有效的值。該約束是在列中定義的,因此只有在特定列中添加約束時,它才會生效。
下面是一個簡單的示例,包含了一個使用 CHECK 約束的表:
CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(50), Age INT, Gender ENUM('M', 'F'), GPA DECIMAL(3,2), CHECK (Age BETWEEN 18 AND 30), CHECK (GPA BETWEEN 0 AND 4), CHECK (Gender IN ('M', 'F')) );在上面的示例中,CHECK 約束被用于限制 Age、GPA 和 Gender 列的有效值范圍。例如,Age 列的值必須在 18 和 30 之間。 使用 CHECK 約束還有其他一些重要的注意事項: 1. CHECK 約束只能在表級別定義,不能在列級別定義。這意味著只有在創建表時才能添加 CHECK 約束。 2. CHECK 約束只能用于確定值的范圍和/或類型。它不能用于檢查其他表的值或執行計算。 3. CHECK 約束不能用于包含 NULL 值的列。 總之,CHECK 約束是一種非常有用的約束,可以確保數據的準確性和完整性。它為表的設計提供了更大的靈活性,并可以確保您的數據始終保持完好無損。