n****e 发帖数: 1403 | |
c*****d 发帖数: 6045 | 2 mysql不可以,oracle可以
为啥要这么做? |
B*****g 发帖数: 34098 | 3 你的知识该更新了,三天不学习,赶不上刘少奇
http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html
【在 c*****d 的大作中提到】 : mysql不可以,oracle可以 : 为啥要这么做?
|
B*****g 发帖数: 34098 | 4 现在就去把mysql的endorsement拿掉
【在 c*****d 的大作中提到】 : mysql不可以,oracle可以 : 为啥要这么做?
|
n****e 发帖数: 1403 | |
n****e 发帖数: 1403 | 6 MySQL里有几百个tables,现在需要给这些tables都先加一个同名的column to log
changed_timstamp,然后再都生成一个trigger for all 这几百个tables,once any
update on a row,then the column changed_timstamp will be set to now()。
关键是tables 太多,而且database有可能被drop and recreate结构可能有变化,然后
再给每个table加trigger,如果是manually 加而不是用procedure那就是饿梦啊。
【在 c*****d 的大作中提到】 : mysql不可以,oracle可以 : 为啥要这么做?
|
y****w 发帖数: 3747 | 7 你们没有人用shell或者perl么?
any
【在 n****e 的大作中提到】 : MySQL里有几百个tables,现在需要给这些tables都先加一个同名的column to log : changed_timstamp,然后再都生成一个trigger for all 这几百个tables,once any : update on a row,then the column changed_timstamp will be set to now()。 : 关键是tables 太多,而且database有可能被drop and recreate结构可能有变化,然后 : 再给每个table加trigger,如果是manually 加而不是用procedure那就是饿梦啊。
|
B*****g 发帖数: 34098 | 8 http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-stat
any
【在 n****e 的大作中提到】 : MySQL里有几百个tables,现在需要给这些tables都先加一个同名的column to log : changed_timstamp,然后再都生成一个trigger for all 这几百个tables,once any : update on a row,then the column changed_timstamp will be set to now()。 : 关键是tables 太多,而且database有可能被drop and recreate结构可能有变化,然后 : 再给每个table加trigger,如果是manually 加而不是用procedure那就是饿梦啊。
|
|
n****e 发帖数: 1403 | 9 偶试过prepared statement了。 trigger滴不行啊!
【在 B*****g 的大作中提到】 : http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-stat : : any
|
n****e 发帖数: 1403 | 10 shell或者perl? 最后还不的是SQL吗?SQL还没解决呢! anyway, thanks
【在 y****w 的大作中提到】 : 你们没有人用shell或者perl么? : : any
|
|
|
B*****g 发帖数: 34098 | 11 那就直接产生script输出到文本文件上,然后再执行
【在 n****e 的大作中提到】 : 偶试过prepared statement了。 trigger滴不行啊!
|
n****e 发帖数: 1403 | 12 Beijing还是有经验啊。这个是最后我唯一可实现的方法啊。 谢谢大家了。
【在 B*****g 的大作中提到】 : 那就直接产生script输出到文本文件上,然后再执行
|
c*****d 发帖数: 6045 | |
c*****d 发帖数: 6045 | 14 yhangw的意思是用sql语句生成创建trigger的语句
和bejing的意思一样
【在 n****e 的大作中提到】 : shell或者perl? 最后还不的是SQL吗?SQL还没解决呢! anyway, thanks
|
B*****g 发帖数: 34098 | 15 我现在都用java,lol
【在 c*****d 的大作中提到】 : 受不了你了,果然想当然的用prepared sql : 你自己试一下
|
c*****d 发帖数: 6045 | 16 鄙视你,竟然抛弃高贵的PL/SQL去搞什么java,哈哈
【在 B*****g 的大作中提到】 : 我现在都用java,lol
|
y*****g 发帖数: 677 | 17 你可以用Trigger, 看你的insert, update, delete 在这个TABLE 上多不多;
如果transaction rate 不是很高, 表格不算大, 你的TRIGGER 可能运行的好好的;
反之, 我不建议你使用,会把你的数据库整个都变得较慢。
这不,我刚把三个TRIGGER 去掉了。IMPACT 还是蛮大的。 |
s**********o 发帖数: 14359 | 18 这个TRIGGER更新的数据太多了,不能用的,可以搞个USER DEFINED FUNCTION,把
TIMESTAMP储存在那,就一个RECORD么,干嘛没事了去TABLE上UPDATE |
y****w 发帖数: 3747 | 19 干嘛不直接给丫一个默认值[ON UPDATE] CURRENT_TIMESTAMP??
any
【在 n****e 的大作中提到】 : MySQL里有几百个tables,现在需要给这些tables都先加一个同名的column to log : changed_timstamp,然后再都生成一个trigger for all 这几百个tables,once any : update on a row,then the column changed_timstamp will be set to now()。 : 关键是tables 太多,而且database有可能被drop and recreate结构可能有变化,然后 : 再给每个table加trigger,如果是manually 加而不是用procedure那就是饿梦啊。
|
B*****g 发帖数: 34098 | 20 ding,楼上都是打酱油的
【在 y****w 的大作中提到】 : 干嘛不直接给丫一个默认值[ON UPDATE] CURRENT_TIMESTAMP?? : : any
|
|
|
y****w 发帖数: 3747 | 21 mysql很好玩,好像timestamp默认就啥都干了。
http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization
【在 B*****g 的大作中提到】 : ding,楼上都是打酱油的
|
s**********o 发帖数: 14359 | 22 他不是要UPDATE其他很多TABLE么
【在 y****w 的大作中提到】 : 干嘛不直接给丫一个默认值[ON UPDATE] CURRENT_TIMESTAMP?? : : any
|
y****w 发帖数: 3747 | 23 只alter table lz肯定就不发愁怎么做了。
【在 s**********o 的大作中提到】 : 他不是要UPDATE其他很多TABLE么
|
s**********o 发帖数: 14359 | 24 alter table总是不好的吧,哪天就会遇到ERROR,COLUMN ALREADY EXISTS
【在 y****w 的大作中提到】 : 只alter table lz肯定就不发愁怎么做了。
|
y****w 发帖数: 3747 | 25 lz要的就是这个新column。他那些triggers就是用来更新这一列的。
【在 s**********o 的大作中提到】 : alter table总是不好的吧,哪天就会遇到ERROR,COLUMN ALREADY EXISTS
|
s****a 发帖数: 9912 | 26 哦
【在 y****w 的大作中提到】 : lz要的就是这个新column。他那些triggers就是用来更新这一列的。
|
y*****g 发帖数: 677 | 27 ERROR,COLUMN ALREADY EXISTS
报错,skip 不久可以了。反正只加一次。 |
p*****u 发帖数: 214 | 28 mysql trigger 要谨慎使用,如果处理数量很大,最好不要用,会降低mysqld 的效率
,如果是为了少量的数据,trigger会起到很好的作用,大量数据处理还是写script吧
。而且对错误处理会更丰富。 |