博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL事件异常记录
阅读量:5301 次
发布时间:2019-06-14

本文共 743 字,大约阅读时间需要 2 分钟。

最近在调整MySQL存储过程以及通过事件调用的过程中遇到几个坑,记录如下。

MySQL版本:5.6

开发工具:SQLyog v12

1、存储过程 P 中有一条 UPDATE 临时表 TEMP_T 的语句,调整过程中把表名写错了,相当于 UPDATE TEMP_T 之前,并没有创建 TEMP_T。但是,存储过程 P 在最终提交的时候并没有报错,而且执行存储过程 P 也没有报错!然而,后来观察到通过事件 E 调用此存储过程失败了,失败原因就是表不存在!

2、存储过程 P 中创建了一张临时表 TEMP_T,其中一个字段 C 为 TEXT 类型,而且定义了 DEFAULT ''(实际上 TEXT 类型不支持自定义默认值)。同样的,存储过程 P 在提交和执行过程中都没有报错,而通过事件 E 调用时才出现了报错!

1101 - 42000 - BLOB/TEXT column 'adp_msg' can't have a default value

3、更有意思的是,我还创建了一张实体表 T,其中一个字段 C 为 TEXT 类型,而且定义了 DEFAULT ''。直接执行建表语句没有任何报错,但是通过 SQLyog 查看表信息时,发现字段 C 的 DEFAULT '' 定义已经被取消了!

结论:因为所有的执行操作都是在 SQLyog 上进行的,所以我怀疑这个软件是不是有忽略部分 SQL 错误的功能?接着,我改用 Navicat 测试了一下 TEXT 类型定义 DEFAULT ''  问题,仍然没有报错,是不是说明这两个客户端软件都会忽略错误,还是 MySQL 本身的问题?

转载于:https://www.cnblogs.com/zijianll/p/11287147.html

你可能感兴趣的文章
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>