當前位置:首頁 » 編程語言 » sql創建check約束
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql創建check約束

發布時間: 2023-06-29 01:56:01

① 怎麼用sql命令語句寫check約束

現在要說的是在列這一層次過濾的基於表定義之前就規范好的 CHECK 約束。(MySQL 版本 >= 8.0.16)

  • mysql> create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));

  • Query OK, 0 rows affected (0.03 sec)

  • mysql> create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);

  • Query OK, 0 rows affected (0.02 sec)

  • 這里 CHECK 約螞衫束的相關限制如下:

    1. constraint 名字在每個資料庫中唯一。

    也就是說單個資料庫里不存在相同的兩個 constraint,如果不定義,系統自動生成一個唯一的約束名字。

    2. check 約束針對語句 insert/update/replace/load data/load xml 生效;針對對應的 ignore 語句失效。

    3. 並非每個函數都可以使用,比如函數笑氏結果不確定的:NOW(),CONNECTION_ID(),CURRENT_USER()。

    4. 不適用於存儲過程和存儲函數。

    5. 系統變數不適用。

    6. 子查詢不適用。

    7. 外鍵動作(比如 ON UPDATE, ON DELETE) 不適用。

    8. enforced 默認啟用,如果單獨加上碰物散 not enforced ,check 約束失效。

② SQL SERVER中如何更改CHECK約束

ALTER TABLE 時的 SQL CHECK 約束

當表已被創建時,如需在 「P_Id」 列創建 CHECK 約束,請使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

③ SQL的問題如何建立check約束

假設你是 Oracle 或者 DB2 或者 SQL Server 資料庫

ALTER TABLE 「學生表」
ADD CONSTRAINT test_tab_check
CHECK ( 系別 IN ( '計算機技術系', '工程技術系' , '經濟管理系', '文法系', '外語系' ) );

如果你的資料庫是 MySQL

那麼需要使用 enum 來實現上面的功能。
也就是 系別 的數據類型, 不是 varchar 了

而是
系別 enum( '計算機技術系', '工程技術系' , '經濟管理系', '文法系', '外語系' )

例如:

mysql> CREATE TABLE `trainrunplan` (
-> `train_id` varchar(20) NOT NULL,
-> `trainState` enum('售票中', '運行中', '已完成') NOT NULL,
-> `runDate` varchar(40) NOT NULL,
-> PRIMARY KEY (`train_id`, `runDate`)
-> );
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO `trainrunplan`
-> VALUES ('1', '售票中', '2010-11-21');
Query OK, 1 row affected (0.03 sec)

mysql>
mysql> INSERT INTO `trainrunplan`
-> VALUES ('2', '非法數據', '2010-11-21');
ERROR 1265 (01000): Data truncated for column 'trainState' at row 1
mysql>

④ SQL中用check約束一列的首字母為's'

檢查約束首字母為s:
check(col1 like 's%')

檢查約束咐冊前3位和後8位均為數字拍困字襲簡念符:
check(col2 like '[0-9][0-9][0-9]%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

⑤ SQL CHECK約束表達式 就比如 sex列名中的 性別,只能填寫"男"或"女"

進入設計表,右鍵,選擇「CHECK 約束」,新建約束,「sex=『男'」或"sex='女'就行了!

⑥ 如何在SQL表中的性別進行check約束

如何在SQL表中的性別進行check約束的方法。

如下參考:

1.現在打開SQLSERVER查看要操作的表的數據結構。

⑦ 怎樣在sql中創建check約束

展開表 裡面有個約束,右鍵添加約束 可以
或者用語句
alter table 表名 --要往哪個表添加
add constraint 約束名 check(約束)

約束填寫 可以是欄位名>0 約束該欄位的值必須大於0 等等等等。
約束名 check一般為ck_表名_欄位名 只是一個命名規則 可以不遵循

⑧ SQL資料庫建表需要添加check約束只能是男或女表達式如何填寫

check列 like 「男」 or 「女」 這樣表達。