Mysql触发器处理本表数据

来源:Asp之家 时间:2010-10-25 19:56:00 

关于Mysql的触发器,基本上每个Mysql教程里都有讲到,但是我发现那些教程里讲的都是如何处理其他表的数据。在Mysql中写触发器操作本表的列数据时,它的写法与操作其他表列的数据是不一样的。

我写了一个触发器,它的作用是在插入数据前,如果列name的字符串中含有”-”(中划线),则替换为” “(空格)。

错误的代码:

delimiter |

create trigger replaceGangcn

before insert on dept

for each row

begin

update dept set name = replace(new.name,’-',’ ‘);

end

|

delimiter ;

执行后,触发器成功使用到表dept上,但是当我向表中插入数据时,Mysql却提示:

ERROR 1442 (HY000): Can’t update table ‘dept’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

不是很明白这个错误信息的含义。不过我知道了一点,Mysql的触发器在处理本表的数据时只需使用New.列名直接操作即可,而不要用update声明。上面那段代码改成如下这样即可:

delimiter |

create trigger replaceGangcn

before insert on dept

for each row

begin

set new.name = replace(new.name,’-',’ ‘);

end

|

delimiter ;


标签:mysql,表,数据
0
投稿

猜你喜欢

  • 新版php study根目录下文件夹无法显示的图文解决方法

    2023-11-15 00:44:29
  • python画微信表情符的实例代码

    2022-01-09 07:06:40
  • Python3里的super()和__class__使用介绍

    2022-06-27 09:29:35
  • Docker同时安装MySQL和MariaDB的方法步骤

    2024-01-27 06:51:32
  • Springboot项目对数据库用户名密码实现加密过程解析

    2024-01-19 23:02:04
  • 用python修改excel表某一列内容的操作方法

    2022-01-22 20:51:29
  • 浅谈 Webpack 如何处理图片(开发、打包、优化)

    2024-06-14 20:48:11
  • MySQL慢查询日志的作用和开启

    2024-01-21 20:23:33
  • 浅谈使用Python变量时要避免的3个错误

    2022-06-20 21:07:07
  • python mac下安装虚拟环境的图文教程

    2021-11-02 23:35:21
  • 用Python实现爬取百度热搜信息

    2023-12-28 22:22:20
  • 小程序开发之uniapp引入iconfont图标以及使用方式

    2024-04-22 13:09:05
  • 第二篇Bootstrap起步

    2024-04-16 08:59:36
  • Java基于正则表达式实现的替换匹配文本功能【经典实例】

    2023-03-15 22:27:44
  • sql语句中临时表使用实例详解

    2024-01-15 22:39:11
  • Python实现人脸识别并进行视频跟踪打码

    2022-08-04 22:57:25
  • Win10下配置VScode远程开发ssh-remote(免密登录)

    2022-07-17 23:01:13
  • Django压缩静态文件的实现方法详析

    2023-06-15 05:31:33
  • AXObject解决IE需要激活 ActiveX 控件方法

    2007-11-08 12:16:00
  • 对python 中re.sub,replace(),strip()的区别详解

    2022-07-17 21:33:03
  • asp之家 网络编程 m.aspxhome.com