mysql代码提示设置_编撰mysql存储过程时,最好设置SQL_MODE
编写mysql存储过程时,最好设置SQL_MODE编写mysql存储过程时,最好设置SQL_MODE,比如下面的例子:DELIMITER //CREATE FUNCTION test(p_first TINYINT, p_second TINYINT) RETURNS TINYINTBEGINDECLARE v_result TINYINT;SET v_result...
编写mysql存储过程时,最好设置SQL_MODE
编写mysql存储过程时,最好设置SQL_MODE,比如下面的例子:
DELIMITER // CREATE FUNCTION test(p_first TINYINT, p_second TINYINT) RETURNS TINYINT BEGIN DECLARE v_result TINYINT; SET v_result := p_first + p_second; RETURN v_result; END// DELIMITER ;
欢迎大家阅读《编撰mysql存储过程时,最好设置SQL_MODE》,跪求各位点评,by 搞代码
看上去是正确的,比如调用:
mysql> select test(126,1);
+-------------+
| test(126,1) |
+-------------+
| 127 |
+-------------+
1 row in set (0.00 sec)
但:
mysql> select test(127,1);
+-------------+
| test(127,1) |
+-------------+
| 127 |
+-------------+
1 row in set, 1 warning (0.00 sec)
就错误了,因为用了tinyint,
所以,强烈建议编译存储过程时,设置sql_mode,比如:
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES';
然后当再运行存储过程时,可以有提示:
mysql> select test(127,1);
ERROR 1264 (22003): Out of range value for column 'v_result' at row 1
1 楼 lucky_java 2012-05-18
![]()

微信 赏一包辣条吧~

支付宝 赏一听可乐吧~
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)