mysql查看check约束_关于MYSQL 检查check约束

MYSQL 目前版本貌似不支持 SQL标准的 检查约束(check);

SQL如:

ALTER TABLE emp ADD CONSTRAINT ck_emp_sex CHECK

(sex ='男' OR sex='女');

CHECK子句会被分析,但是会被忽略。请参见13.1.5节,“CREATE TABLE语法”。接受这些子句但又忽略子句的原因是为了提高兼容性,以便更容易地从其它SQL服务器中导入代码,并运行应用程序,创建带参考数据的表。请参见1.8.5节,“MySQL与标准SQL的差别”。

但使用过程往往需要MYSQL 提供类似check约束的DDL语句;

可以使用SQL枚举值:

ALTER TABLE emp MODIFY sex ENUM("男","女");

1 查询雇员表:

SELECT * FROM emp;

empno  ename         deptno  sal   sex

1      张三        10      2000  女

2      李四        10      3000  男

3      xiaohong      10      4000  男

4      杨国        10      5000  男

5      苏三        20      8000  男

2 修改雇员编号1 的性别为 人妖;

UPDATE emp SET sex ='人妖' WHERE empno =1 ;

执行结果:

(1 row(s) affected, 1 warning(s))

Execution Time : 00:00:00:156

Transfer Time  : 00:00:00:000

Total Time     : 00:00:00:156

Note : To see complete list of warning(s), enable Tools -> Preferences -> General -> Show Warning(s) in Messages Tab

3 再次查询

empno  ename         deptno  sal   sex

1      张三        10      2000

2      李四        10      3000  男

3      xiaohong      10      4000  男

4      杨国        10      5000  男

5      苏三        20      8000  男

雇员编号为1 的张三 性别为 空;

4 插入语句

INSERT INTO emp VALUE ('张飞', 10, 3000, '人妖');

Query : insert into emp value ('张飞', 10, 3000, '人妖')

Error Code : 1136

Column count doesn't match value count at row 1

Execution Time : 00:00:00:000

Transfer Time  : 00:00:00:000

Total Time     : 00:00:00:000

报错切插入失败!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值