当前位置:首页 » 编程语言 » 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 “女” 这样表达。