首页 小组 文章 相册 留言本 用户 搜索 我的社区 在线学堂 商城 购物车 支付钱包

[打卡]关于signal sqlstate '42001'

2024-06-19 09:32:18
0
305

SQLSTATE 是一个五位数的代码,用于标识 SQL 语句或过程中发生的错误或异常。这些代码由 SQL 标准定义,但也包括一些用于用户定义错误或特定于数据库管理系统的代码。


当你使用 SIGNAL(在支持该语法的数据库系统中,如 MySQL)或类似的机制(如 PostgreSQL 的 RAISE)来触发自定义错误时,你可以选择使用预定义的 SQLSTATE 值之一,或者选择一个在用户定义范围内的值。


预定义的 SQLSTATE 值范围包括:

  • 00000 到 02FFF:成功完成
  • 03000 到 03FFF:警告
  • 07000 到 07FFF:动态 SQL 错误
  • 08000 到 08FFF:连接异常
  • 09000 到 09FFF:特性不被支持
  • 21000 到 21FFF:数据异常
  • 22000 到 22FFF:数据引用完整性异常
  • 23000 到 23FFF:约束违反
  • 24000 到 24FFF:无效游标状态
  • 25000 到 25FFF:无效的事务状态
  • 26000 到 26FFF:无效的 SQL 语句标识符
  • 27000 到 27FFF:触发的数据更改异常
  • 28000 到 28FFF:无效授权规范
  • 29000 到 29FFF:无效或未知的 SQLSTATE
  • 2F000 到 2FFFF:SQL 访问规则和系统目录错误
  • 33000 到 33FFF:无效的 SQL 语句名称
  • 34000 到 34FFF:游标名称不存在
  • 38000 到 38FFF:外部资源错误
  • 39000 到 39FFF:外部例程异常
  • 3B000 到 3BFFF:保存点异常
  • 3D000 到 3DFFF:无效的规范
  • 40000 到 40FFF:事务回滚
  • 42000 到 42FFF:语法错误或访问规则违反(这通常是用户定义错误的好范围)
  • 44000 到 44FFF:WITH CHECK OPTION 违反
  • HZ000 到 HZ999:特定于实现的错误


当你选择用户定义的 SQLSTATE 值时,建议使用 42000 到 42FFF 范围内的值,因为这些值通常用于语法错误或访问规则违反,但它们也可以用于其他用户定义的错误。不过,重要的是要确保你选择的 SQLSTATE 值不会与任何预定义的 SQLSTATE 值冲突。

评论
意见反馈