叶金荣(yejr)早年曾混迹于linuxforum、linuxsir、chinaunix等社区。
2006年建本站至今,是国内最早的一批MySQL技术博客之一。
从事过LAMP开发,后成为专职MySQL DBA,擅长MySQL优化、数据库架构设计及对比基准压测。
2012年被提名成为ORACLE MySQL ACE。
2015年创办靠谱、优质的在线培训品牌知数堂专注培养优秀互联网从业人才以及企业服务。
2018年发起「3306π」社区
微信公众号:老叶茶馆(imysql_wx)
微博:@叶金荣
QQ群: 579036588
邮箱:yejr@qq.com
神器: 自动生成my.cnf
搜索引擎中的我:谷歌Google、360搜索、百度、搜狗。
买茶找我: 自家茶叶店
【老叶茶馆】微信公众号二维码
我由三张表A,B和C。
在A表中增加一条记录需要把一些记录加到B表中,所以我写了一个trigger。 在B表中增加一条记录需要把一些记录加到C表中,所以我写了一个trigger。
这时问题出现了: 1.如果B表中是通过UI(或者手工在数据库中增加)的记录,那么trigger也会在C表中增加。 2.如果B表中的数据是由A的trigger增加的,那么C表中不会增加。
请问谁可以解释下吗? 谢谢!!!!
yejr
周二, 2007/01/23 - 20:50
Permalink
我的版本是 5.0.27,没有你所说的问题,范例如下: 表yejr1,yejr2,yejr3的结构都一样:
+-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | YES | UNI | | | | name | text | YES | | | | +-------+---------+------+-----+---------+-------+
基于表1的触发器:
create trigger tr_yejr1_ins after insert on yejr1 for each row begin insert into yejr2 values(NEW.id, New.name); end;
基于表2的触发器:
create trigger tr_yejr2_ins after insert on yejr2 for each row begin insert into yejr3 values(NEW.id, New.name); end;
不知道你的版本以及你是如何创建触发器的呢?
MySQL中文网: http://imysql.cn Google MySQL中文用户群:http://groups.google.com/group/imysql
给你的祝福,要让你招架不住!
sxryan
周三, 2007/01/24 - 09:40
版本是: mysql Ver 14.12 Distrib 5.0.22, for Win32 (ia32)
创建触发器和你所写的一样,也没什么差别。
周三, 2007/01/24 - 11:57
你所说的两种情况中2是由A的触发器产生的,你如何实现2所说的触发呢?如果不是手工添加或者程序添加,如何触发?不解。
周三, 2007/01/24 - 14:20
谢谢,已解决。
周三, 2007/01/24 - 17:45
如何解决的?
周四, 2007/01/25 - 10:36
可能是因为漏哪儿了,我重新写了一遍后就可以了。 我也没找到原因 这是上个月写的一些东西,前两天发现了逻辑错误,所以又重新修改。
当时怎么就没有找到是哪儿出问题了,搞得我对触发器很是失望。
当时急着赶进度,所以可能查的时候不太仔细,以为是触发器的限制
yejr
周二, 2007/01/23 - 20:50
Permalink
我的版本是
我的版本是 5.0.27,没有你所说的问题,范例如下:
表yejr1,yejr2,yejr3的结构都一样:
基于表1的触发器:
基于表2的触发器:
不知道你的版本以及你是如何创建触发器的呢?
MySQL中文网: http://imysql.cn
Google MySQL中文用户群:http://groups.google.com/group/imysql
给你的祝福,要让你招架不住!
sxryan
周三, 2007/01/24 - 09:40
Permalink
版本是: mysql Ver 14.12
版本是:
mysql Ver 14.12 Distrib 5.0.22, for Win32 (ia32)
创建触发器和你所写的一样,也没什么差别。
yejr
周三, 2007/01/24 - 11:57
Permalink
你所说的两种情况中2
你所说的两种情况中2是由A的触发器产生的,你如何实现2所说的触发呢?如果不是手工添加或者程序添加,如何触发?不解。
MySQL中文网: http://imysql.cn
Google MySQL中文用户群:http://groups.google.com/group/imysql
给你的祝福,要让你招架不住!
sxryan
周三, 2007/01/24 - 14:20
Permalink
谢谢,已解决。
谢谢,已解决。
yejr
周三, 2007/01/24 - 17:45
Permalink
如何解决的? MySQL中
如何解决的?
MySQL中文网: http://imysql.cn
Google MySQL中文用户群:http://groups.google.com/group/imysql
给你的祝福,要让你招架不住!
sxryan
周四, 2007/01/25 - 10:36
Permalink
可能是因为漏哪儿了
可能是因为漏哪儿了,我重新写了一遍后就可以了。
我也没找到原因
这是上个月写的一些东西,前两天发现了逻辑错误,所以又重新修改。
当时怎么就没有找到是哪儿出问题了,搞得我对触发器很是失望。
当时急着赶进度,所以可能查的时候不太仔细,以为是触发器的限制