首页
学习
活动
专区
圈层
工具
发布

第16章_变量、流程控制与游标

** 举例 1:** 定义 “Field_Not_Be_NULL” 错误名与 MySQL 中违反非空约束的错误类型是 “ERROR 1048 (23000)” 对应。...CONDITION FOR SQLSTATE '23000'; ** 举例 2:** 定义 "ERROR 1148 (42000)" 错误,名称为 command_not_allowed。...在存储过程中,定义处理程序,捕获 sqlstate_value 值,当遇到 sqlstate_value 值为 23000 时,执行 EXIT 操作,并且将 @proc_value 的值设置为 - 1。...游标 # 4.1 什么是游标(或光标) 虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键字 LIMIT 返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录...函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和达到 limit_total_salary 参数的值,返回累加的人数给 total_count。

96410

MySQL数据库,从入门到精通:第十六篇——MySQL变量、流程控制和游标详解

举例 1 : 定义“Field_Not_Be_NULL”错误名与MySQL中违反非空约束的错误类型是“ERROR 1048 (23000)”对应。...CONDITION FOR SQLSTATE '23000'; 举例 2 : 定义"ERROR 1148(42000)"错误,名称为command_not_allowed。...在存储过程中,定义处理程序,捕获sqlstate_value值,当遇到sqlstate_value值为 23000 时,执行EXIT操作,并且将@proc_value的值设置为-1。...游标 4. 1 什么是游标(或光标) 虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键字 LIMIT 返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录、...函数的功能可以实现累加薪资最高的几个员工的薪资值,直到薪资总和达到limit_total_salary参数的值,返回累加的人数给total_count。

88310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【重学 MySQL】八十、掌握定义条件与处理程序,让数据库管理更高效!

    示例 假设在MySQL中执行一个插入操作时发生了重复键错误,那么可能会返回以下错误信息: 使用 MYSQL_error_code 表示:ERROR 1062 (23000): Duplicate entry...在这里,1062 是 MYSQL_error_code,表示重复键错误;23000 是对应的 sqlstate_value。...在这里,23000 是 sqlstate_value,表示完整性约束错误(即重复键错误);1062 是对应的MySQL错误代码。...1216:外键约束检查失败,更新子表记录失败。 1217:外键约束检查失败,删除或修改主表记录失败。...示例 定义一个 CONTINUE 处理程序,当发生 SQLSTATE ‘23000’(表示约束违反)时,输出一条消息: DECLARE CONTINUE HANDLER FOR SQLSTATE '23000

    79210

    db2 terminate作用_db2 truncate table immediate

    类代码 23 约束违例 表 18. 类代码 23:约束违例 SQLSTATE 值 含义23001 RESTRICT 更新或删除规则防止父键被更新或删除。...类代码 38:外部函数异常 SQLSTATE 值 含义38XXX 外部例程或触发器返回有效错误 SQLSTATE。38001 不允许外部例程执行 SQL 语句。...类代码 39:外部函数调用异常 SQLSTATE 值 含义39001 用户定义的函数已返回无效 SQLSTATE。39004 不允许 IN 或 INOUT 参数为空值。...类代码 40:事务回滚 SQLSTATE 值 含义40001 发生了伴随自动回滚的超时或死锁。40003 语句完整性未知。40504 由于系统错误导致工作单元被回滚。...类代码 40:事务回滚 SQLSTATE 值 含义 40001 发生了伴随自动回滚的超时或死锁。 40003 语句完整性未知。 40504 由于系统错误导致工作单元被回滚。

    11.2K20

    2024Mysql And Redis基础与进阶操作系列(3)作者——LJS

    1 MySQL约束 1. 约束(constraint)概述 1.1 为什么需要约束 数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。...为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。...从以下表格四个方面考虑: 实体完整性(Entity Integrity) 例如,同一个表中,不能存在两条完全相同无法区分的记录 域完整性(Domain Integrity) 例如:年龄范围0-120,性别范围...如果删除主键约束了,主键约束对应的索引就自动删除了。 需要注意的一点是,不要修改主键字段的值。因为主键是数据记录的唯一标识,如果修改了主键的值,就有可能会破坏数据的完整性。...如果删除主键约束了,主键约束对应的索引就自动删除了。 需要注意的一点是,不要修改主键字段的值。 因为主键是数据记录的唯一标识, 如果修改了主键的值,就有可能会破坏数据的完整性。

    73410

    MySQL 表约束实战指南:从概念到落地,守护数据完整性

    …… 而 “表约束” 正是解决这些问题的 “规则利器”,它能从设计层面强制保证数据的准确性、一致性和完整性,是数据库稳定运行的 “安全防线”。​...约束的最终目标:保证数据的完整性和可预期性 所以需要更多的约束条件!!!...default和NOT NULL不冲突,而是互相补充的。 NOT NULL:当用户想要插入的时候,为NULL和合法数据。...我们从 “为什么需要约束” 的概念引入,逐步掌握了空属性对字段必填性的控制、默认值对插入效率的提升、列描述对表结构的说明,也深入理解了 zerofill 的格式化作用,以及主键、自增长、唯一键、外键在保障数据完整性中的关键价值...如果你在约束使用中遇到特殊场景(比如外键冲突如何处理、自增长断号如何修复),或者对某类约束的用法有疑问,欢迎在评论区交流。

    21900

    【MySql】表的约束

    表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。...约束的最终目标:保证数据的完整性和可预期性所以需要更多的约束。...> insert into t14 (name,age) values ('张三',20); Query OK, 1 row affected (0.00 sec) default和NOT NULL不冲突...Query OK, 0 rows affected (0.07 sec) Records: 0 Duplicates: 0 Warnings: 0 对b列添加了zerofill属性,再进行查找,返回如下结果...我们选择某一列作为主键,但是并不排除其他属性不需要维护,可能需要用到唯一键来限定,选择其他列作为唯一键,与主键配合起来,能够保证一些数据冲突。

    1.9K30

    【MySQL】005.MySQL表的约束(上)

    表的约束 1. 约束概念 真正约束字段的是数据类型,但数据类型约束很单一,需要一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。...表的约束:表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。就好比我们在vs上编译代码时,vs会对我们进行各种约束,保证我们的代码在语法上是正确的。...约束本质是通过技术手段倒逼程序员插入正确的数据。反过来,站在mysql的视角,插入进来的数据,都是符合数据约束的。 约束的最终目标:保证数据的完整性和可预期性。 2....这就是约束。...default和not null不冲突,而是互相补充的。 null和not null是作用在用户想插的时候。

    42510

    【MySQL】数据库约束

    ✨一、数据库的约束 1.什么是数据库约束? 数据库约束是关系型数据库的一个重要功能,用于确保数据的完整性、一致性和准确性(数据本身是否正确、关联关系是否正确)。数据库约束一般指定在列。...二、数据库约束的分类 1.非空约束(NOT NULL) 1.定义 定义:指定表中的某列不能存储NULL值。例如:在“学生信息表”中,指定学生的姓名不能为空,确保学生基本信息的完整性。...外键约束能够保证引用的完整性,即一个表的外键值必须存在于另一个表的主键列中。...student2(name,course_id) values('赵六',null); Query OK, 1 row affected (0.09 sec) 外键列的性质与被引用表中的主键列的性质并无冲突...例如:当外键列允许插入null值,与被引用表中得主键列的性质并不冲突。 如果要删除主表中的记录,要先查看子表中是否对该条记录有依赖,如果有依赖,需要先删除子表中的元素,否则发生报错现象。

    50210
    领券