互联网服务MySQL

假如MySQL改了字段,触发器能把修改的字段改成原字段吗?

例如:
show create table t\G
1. row **

   Table: t

Create Table: CREATE TABLE t (
id int(11) DEFAULT NULL,
name varchar(20) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

MariaDB [test]> alter table t change id id int(20);
Query OK, 0 rows affected (0.29 sec)
Records: 0 Duplicates: 0 Warnings: 0

MariaDB [test]> show create table t\G
1. row **

   Table: t

Create Table: CREATE TABLE t (
id int(20) DEFAULT NULL,
name varchar(20) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
怎么把int(20)自动改回来的int(11)?

参与8

1同行回答

liucj2004liucj2004  其它 , undefined
MySQL trigger支持的事件只有 { INSERT | UPDATE | DELETE }。所以无法监听alter table事件如果要实现这样的功能,你可以进行监控binlog,或者用canal等去实时抽取binlog。自己手工做一个触发器。但是不建议对alter table做触发内容,因为有的操作会锁表,造成主从延迟等。...显示全部

MySQL trigger支持的事件只有 { INSERT | UPDATE | DELETE }。
所以无法监听alter table事件
如果要实现这样的功能,你可以进行监控binlog,或者用canal等去实时抽取binlog。自己手工做一个触发器。
但是不建议对alter table做触发内容,因为有的操作会锁表,造成主从延迟等。

收起
农业其它 · 2018-03-14
浏览2414
twt运营 邀答

提问者

xiaoxiaoboy
数据库管理员国搜

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-03-14
  • 关注会员:2 人
  • 问题浏览:2643
  • 最近回答:2018-03-14
  • X社区推广