问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql创建一个触发器,求助

发布网友 发布时间:2022-04-27 09:21

我来回答

3个回答

热心网友 时间:2022-05-01 23:18

我看了一下, 估计这个触发器的目的, 是想在往 orders 表插入一条记录的时候,命令行下面输出 “本次插入的 order_num ”

因为这个是 MySQL
不是 SQLServer ( 可以用 PRINT 调试输出)
也不是 Oracle ( 可以用 dbms_output.put_line 调试输出 )

对于 MySQL 如果是存储过程的,倒是可以通过在存储过程里面 Select 来把中间的临时结果,输出到终端上。

但是这个触发器,好像用 select 来把结果输出出来,结果是编译不通过的。

下面是一个 简单的 mysql 触发器的例子。

mysql> DELIMITER //
mysql> CREATE TRIGGER BeforeInsertTest
-> BEFORE INSERT ON test_trigger_table
-> FOR EACH ROW
-> BEGIN
-> SET new.val = '100';
-> END;
-> //
Query OK, 0 rows affected (0.02 sec)

mysql>
mysql> INSERT INTO test_trigger_table(id, name) VALUES (1, 'ABC');
-> //
Query OK, 1 row affected (0.03 sec)

mysql> select * from test_trigger_table;
-> //
+------+------+------+
| id | name | val |
+------+------+------+
| 1 | ABC | 100 |
+------+------+------+
1 row in set (0.00 sec)追问order_num在orders表中是一个自动增量,这个语句就是在orders表新插入一行后,自动把新插入行的order_num值返回,但不知道怎么编写者部分的语句,如知道,请指点

追答新插入行的order_num值返回 不用那么麻烦, 直接 select last_insert_id() 就好。

mysql> CREATE TABLE test_create_tab2 (
-> id INT AUTO_INCREMENT,
-> val VARCHAR(10),
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)

参考资料:http://hi.baidu.com/wangqing999/blog/item/8278231f86c16b168718bf6b.html

热心网友 时间:2022-05-02 00:36

错误,不能从触发器返回一个结果集,就是说不能用 select new.order_num; 而应该用赋值语句

热心网友 时间:2022-05-02 02:11

FORE INSERT ON `表名`
FOR EACH ROW
SET NEW.`字段` = `值`
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女朋友送了我一块YAZOLE手表,是什么牌子? 化学会考考了个C,想要补考。 万一下次考考了个D的话,最终成绩是按C算... ...约了四次,见面时聊天也很热情,就是不主动发一条消息呢? ...六次之后发生了关系,那次之后他就没主动联系过我,每天都是我联系他... DVISION iView V60系统参数 TANDBERG 990 MXPTANDBERG 990 MXP介绍 适合小型会议室的视频会议一体机排行?求推荐一下适合的视频会议终端设备... 摩云致胜TrueSens摩云致胜TS6610-R 标清视频会议硬件终端 科达KDV7610科达KDV7610-系统参数 ...杨幂气质好、李沁清纯、刘亦菲仙气十足,你更喜欢谁? mysql怎么创建主外键关系 mysql中间件有哪些? mysql中间表需不需要设置主键 mysql如何向表中间插入行 mysql什么时候需要中间表,查询的时候如何使用中间表,最好有个例子,谢谢... Mysql 中 创建表的问题 create table if not exists mysql怎样在中间插入一行 编号顺序不变 电脑微信版本过低,升级显示下载失败? 演讲发言稿 你最多在多少人面前做过发言或演讲?是怎样的体验? 在演讲的时候,如何避免发言时的紧张? 马哥python培训机构靠谱吗? 想学习马哥python全栈,刚入门可以学习吗? 听说北京马哥培训python,靠谱吗?给找工作吗?? 职工医保和居民医保报销比例的差别是多少 农村合作医疗保险、城镇医疗保险、职工医疗保险三者有什么区别?报销比例是什么样的?农 学习马哥python全栈,需要什么基础? 马哥教育的Python课程怎么样?想深入学习下python 马哥python全栈课程内容质量如何? 马哥python全栈web开发课程好不好? 在mysql中一对多用中间表表示的方式,这个中间表和那两个表的关系怎么... 求各位鉴定一下,此手机是原封还是后封? mysql的id字段是自增,怎么在中间加插入一条数据 mysql主键生成策略 自动增长 mysql有库和表的概念,但是中间这个是啥意思?哪位大神知道 用MySQL建的一个表,id设置的是自增,由于网络问题导致中间出现大量的id空... 怎么在mysql中保留B个字段中间的一段 简谱中的0是什么意思? 脑袋的拼音? 脑袋的拼音 脑袋读音是什么 脑袋汉语拼音怎么写 有哪些礼仪知识 脑袋英语怎么读? “脑袋”两个字在一起读时袋是轻声还是四声? 我国现代礼仪中相见礼仪包括哪些部分?介绍的原则有哪些 脑袋在一起的拼音,袋字要不要加声调 南昌市中学生文明礼仪知识竞赛题库及答案?(网站啊) 脑袋两个字在一起读时袋是轻声还是四声 老师鉴定