触发器执行MySql_数据库触发器的使用

最近研究触发器执行,稍微总结一下,以后继续补充:

    MySql数据库中的触发器应用:

    触发器使于用insert/delete/update的面前或者前面(after/before)执行的sql句语。

    创立触发器需注意要加上delimiter分隔符,以//开始间中写触发器以//开头。

    创立一个user1表

    create table user1(
id int PRIMARY key AUTO_INCREMENT,
username varchar(20),
createtime date);
再创立一个user_log表
create table user_log(
id int PRIMARY key AUTO_INCREMENT,
ext int);

    创立一个触发器(insert后执行的触发器)
delimiter//
create trigger trg_user_insert after insert on user1
 for EACH row
begin
 insert into user_log(ext) values(NEW.id); new.id意为把user1表中的id传入user_log表中的ext中
end;
//

    每日一道理
站在历史的海岸漫溯那一道道历史沟渠:楚大夫沉吟泽畔,九死不悔;魏武帝扬鞭东指,壮心不已;陶渊明悠然南山,饮酒采菊……他们选择了永恒,纵然谄媚诬蔑视听,也不随其流扬其波,这是执著的选择;纵然马革裹尸,魂归狼烟,也要仰天长笑,这是豪壮的选择;纵然一身清苦,终日难饱,也愿怡然自乐,躬耕陇亩,这是高雅的选择。在一番选择中,帝王将相成其盖世伟业,贤士迁客成其千古文章。

    测试:插入user1表中数据后会主动执行触发器
insert into user1 values(null,'zhangsan11',now());
删除这个触发器的法方

DROP TRIGGER trg_user_insert;
 触发器中new与old:

    在insert中有new的虚拟表,在delete中有old的虚拟表,在update中有new和old的虚拟表。

    触发器中before:

    常于用update中在修改后if ....then....end if

    学艺不精,暂解理这么多,如有误请复回2013-04-09 16:58:23

 

 

文章结束给大家分享下程序员的一些笑话语录: Borland说我很有前途,Sun笑了;Sun说我很有钱,IBM笑了;IBM说我很专业,Sybase笑了;Sybase说我数据库很牛,Oracle笑了;Oracle说我是开放的,Linux笑了;Linux说我要打败Unix,微软笑了;微软说我的系统很稳定,我们都笑了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 MySQL 触发器中调用 Python 脚本,你可以使用以下步骤: 1. 在 MySQL 中创建一个触发器,以便在特定事件发生时触发执行 Python 脚本。 2. 在 Python 中编写脚本,以便执行所需的操作。你可以使用 Python 的 MySQL 连接库(如 PyMySQL)与 MySQL 进行交互。 3. 在触发器中调用 Python 脚本,可以通过 shell 命令调用 Python 解释器来实现。例如,在 Linux 系统上,你可以使用以下命令: ``` `/usr/bin/python /path/to/your/python/script.py` ``` 4. 将该命令作为 MySQL 触发器中的 shell 命令调用即可。 需要注意的是,如果你的 Python 脚本需要接收参数,你需要在触发器中将这些参数传递给 shell 命令。可以使用 MySQL 的 `CONCAT()` 函数将参数拼接成字符串,然后在 shell 命令中解析这个字符串。 示例代码如下: ```mysql CREATE TRIGGER `my_trigger` AFTER INSERT ON `my_table` FOR EACH ROW BEGIN SET @args = CONCAT('arg1', ' ', 'arg2', ' ', NEW.`column`); SET @cmd = CONCAT('/usr/bin/python /path/to/your/python/script.py', ' ', @args); SET @result = sys_exec(@cmd); END; ``` 在这个示例中,我们创建了一个名为 `my_trigger` 的触发器,它会在 `my_table` 表中插入新行后触发。在触发器中,我们使用 `CONCAT()` 函数将三个参数拼接成字符串,并将其存储在变量 `@args` 中。然后,我们使用 `CONCAT()` 函数将 Python 解释器路径和脚本路径与 `@args` 拼接起来,存储在变量 `@cmd` 中。最后,我们调用 MySQL 的 `sys_exec()` 函数来执行 shell 命令并将结果存储在变量 `@result` 中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值