`
fanjf
  • 浏览: 332688 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

关于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

 

报错切插入失败!

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 fanjf 2014-04-13  
为什么 update 不报错,结果为空?

相关推荐

    搞定难点MySQL神秘的约束机制

    5. **检查约束(CHECK)** - **定义**:尽管MySQL不直接支持标准SQL中的`CHECK`约束,但它提供了其他方式来实现类似的功能,如使用触发器或存储过程。 - **示例**: ```sql -- 假设想要确保年龄必须大于0 ...

    mysql_约束的使用

    约束类型总的来说有五种:唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束。 1. 唯一性和主键约束 唯一性和主键约束要求某一列或几列不能有重复的值。主键约束不允许为 NULL,而唯一约束允许为 NULL...

    MySQL完整性约束相关资料

    在MySQL中,有四种主要的完整性约束:实体完整性、参照完整性和用户定义的完整性,以及自定义的检查约束。 1. 实体完整性:这是数据库中最基本的完整性约束,通常通过为主键字段设置唯一约束来实现。主键是表中一列...

    MySQL约束_java_

    在Java应用中,检查约束通常在插入或更新数据前通过业务逻辑层(BOL)进行验证,而在MySQL中,`CHECK`语句可以定义这些限制,但MySQL并不完全支持检查约束,通常推荐使用触发器来实现类似功能。 **默认约束**...

    MySQL 基础 - 约束概述与演示.md

    本文档将详细介绍MySQL数据库中常用的四种约束类型:主键约束、外键约束、唯一约束和检查约束,并通过具体的示例代码来展示它们的作用和使用方法,帮助读者更好地理解和运用这些约束。 #### 二、主键约束 (Primary...

    论MYSQL中域完整性约束的实现.pdf

    在标准SQL中,可以使用CHECK约束来定义字段的取值范围,但在MySQL中,虽然可以编写CHECK约束,但实际上这些约束在解析后会被忽略,不会真正执行。这主要是为了提高与其他SQL服务器的代码兼容性,方便导入和运行应用...

    SQL中的几种约束语句

    四、检查约束(Check Constraint) 检查约束是指对数据库表中的某一列或多列的检查条件,用于限制输入值,保证数据库数据的完整性。检查约束可以是列约束或表约束。 五、默认约束(Default Constraint) 默认约束是...

    MySQL约束_java_资料.zip

    5. **检查约束 (CHECK)**:允许定义自定义的条件,以确保插入或更新的数据符合特定的业务规则。然而,MySQL并不直接支持检查约束,但可以通过触发器(TRIGGER)来实现类似的功能。 6. **默认约束 (DEFAULT)**:当...

    25.10 MySQL 约束

    5. **检查约束 (CHECK)**:检查约束允许你设置自定义条件,确保字段值符合特定的业务规则。然而,MySQL并不直接支持检查约束,但可以通过触发器或存储过程实现类似功能。 6. **默认约束 (DEFAULT)**:默认约束为...

    mysql和sqlserver的比较

    **检查约束(CHECK)**: - MySQL 不直接支持 CHECK 约束,但可以通过触发器实现类似功能。 - SQL Server 支持 CHECK 约束: ```sql CREATE TABLE table_name ( column_name3 datatype CHECK (condition), ... ); ...

    day03_MySQL约束2

    5. **检查约束(CHECK)**:检查约束允许设置特定的条件,确保插入或更新的数据符合预期的规则。例如,一个年龄字段可以设置为`CHECK (age >= 0 AND age )`,防止输入无效的年龄。 关于DQL操作: 1. **排序查询...

    MySQL 与SQL Server 数据完整性约束的比较教学.pdf

    - 唯一约束和检查约束:在实现方式上,MySQL与SQL Server在语法和功能支持上有所区别,例如SQL Server支持使用CHECK约束,而MySQL在较新版本中才引入此功能。 - 默认值约束:两种数据库系统都能设置默认值,但在...

    MySql 5.1 参考手册.chm

    1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 ...

    MySql练习3:建表、建约束.zip

    5. **检查约束(CHECK)**:限制字段可以接受的值范围。 在实践中,这些约束可以组合使用,以满足不同业务需求。例如,可以创建一个`courses`表,并用`student_id`作为外键,关联到`students`表的`id`字段,确保...

    MYSQL必会必知

    - 常用的完整性约束,比如主键(PRIMARY KEY)、外键(FOREIGN KEY)、唯一性约束(UNIQUE)、检查约束(CHECK)等。 5. 数据库安全性管理 - 用户账户的创建和权限管理,使用GRANT语句授权,REVOKE语句撤销权限。...

    MySQL 5.1参考手册

    1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装的MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装...

    mysql和sqlserver比较.docx

    创建和撤销 UNIQUE 约束的语法在 MySQL 和 SQL Server 中也大致相同,但 SQL Server 提供了 `WITH NOCHECK` 选项来禁用或启用约束检查,这在 MySQL 中不可用。 CHECK 约束用于限制列中的值的范围。在 MySQL 中,...

    mysql基础学习必学命令

    mysql 基础学习必学命令 mysql 是一个开源的关系型数据库管理系统,广泛应用于 web 应用程序...6. 检查约束:check mastering mysql 需要花费很长时间和精力,但掌握这些基本命令和知识点将为您提供一个良好的开始。

    mysql5

    至于"工具"标签,可能包含了MySQL5的一些实用工具,如mysqldump用于数据备份,mysqladmin用于服务器状态管理,或者myisamchk和innodb_check用于检查和修复表等。这些工具对于数据库管理员来说是日常维护工作的重要...

    Oracle与SQL和Mysql的对比笔记

    - MySQL: `ALTER TABLE 表名 ADD CONSTRAINT 检查约束名 CHECK (列名 > 10)` 14. **添加外键约束** - Oracle: `ALTER TABLE 子表 ADD CONSTRAINT 外键约束名 FOREIGN KEY (子表的列名) REFERENCES 主表 (列名) ON...

Global site tag (gtag.js) - Google Analytics