mysql5.6下载和安装,直接解压缩运行,你知道myql5.6如何下载和安装吗?并且不需要繁琐的安装过程,直接解压缩就可以运行,下面将详细介绍......
mysql怎么返回事务的错误信息
在mysql中的过程定义一个事务,当事务出现异常时mysql系统默认是退出当前块或者继续,怎么换回客户端错误信息呢?我给大家分享一下编写事务的方法 ,我写的经验对你学习mysql有帮助的话,给我投票、点赞或者收藏!
1mysql事务的回滚
2MYSQL数据库存储过程的动态SQL语句
1mysql数据库怎么备份和恢复数据
工具/原料
- mysql、sqlyog
方法/步骤
登录mysql,在test数据库中新建一个表:
CREATETABLE`shoufei`(`id`int(11)NOTNULLAUTO_INCREMENT,`shijian`timestampNOTNULLDEFAULTCURRENT_TIMESTAMP,`xiangmu`varchar(20)NOTNULL,`jiage`floatNOTNULL,`shuliang`int(11)NOTNULL,`jine`floatDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=7DEFAULTCHARSET=utf8
在test数据库中新建一个过程shiwu。
DELIMITER $$
CREATE
PROCEDURE `test`.`shiwu`()
BEGIN
$$
DELIMITER ;
在过程中增加插入语句,给表shoufei加两个数据,数据主键相同会出现错误。
INSERT INTO shoufei VALUES(6,CURRENT_TIMESTAMP,'感冒药',10,3,30);
INSERT INTO shoufei VALUES(6,CURRENT_TIMESTAMP,'云南白药',20,10,200);
在过程中定义事务的异常:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK; 回滚
GET DIAGNOSTICS CONDITION 1 @p1=RETURNED_SQLSTATE,@p2= MESSAGE_TEXT;
IF @p1='BF000' THEN用户的自定义的信息
SIGNAL SQLSTATE 'BF000' SET MESSAGE_TEXT = @p2;
ELSE
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = @p2;
IF;
;
START TRANSACTION;开始事务,定义在插入语句之前。
在过程最后提交更新:
commit;
执行过程,还回错误信息。
SET autocommit=0; 把自动提交关闭
CALL shiwu();
把错误信息修改为中文:
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT = '输入数据更新错误!';
重新执行过程,错误信息变成自定义的文字。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章