如何保持一张表中的两列内容一致?

2015-08-28 11:08:21 +08:00
 Plumes
历史遗留原因导致两个系统现在要共用一个数据库,为了减少工作量想把本来在两个系统中含义一样但名字不同的字段同时保留,但时刻保持内容一致,请问能做到么?
2779 次点击
所在节点    MySQL
12 条回复
johnnyb
2015-08-28 11:15:16 +08:00
视图?
Honwhy
2015-08-28 11:41:39 +08:00
视图?
jhdxr
2015-08-28 11:43:16 +08:00
LS+1 ,或者触发器?
jimrok
2015-08-28 12:12:04 +08:00
事务?
Plumes
2015-08-28 13:17:41 +08:00
@jhdxr mysql 的触发器是不能操作触发器本身所绑定的表的
Plumes
2015-08-28 13:21:14 +08:00
@johnnyb 能详细说一下么?
jhdxr
2015-08-28 13:32:27 +08:00
@Plumes
```
if new.a != old.a then
set new.b=new.a;
else
set new.a=new.b;
end if
```
a 和 b 是那两个要保持一致的字段,为什么不行?
Plumes
2015-08-28 14:16:44 +08:00
@jhdxr 确实可用,感谢已送,不过当时我看到的是这句话 “ MySQL triggers can't manipulate the table they are assigned to ”,是我理解错误了么?
tabris17
2015-08-28 14:18:42 +08:00
用视图啊
jhdxr
2015-08-28 15:12:44 +08:00
@Plumes 这句话的意思是,例如你对 table_example 添加触发器,不能写
update table_example set a = new.a where b = new.b
这样子的语句。
(也就是说,不能在表的触发器内,触发这张表别的行的变更
luzjoy
2015-08-28 17:49:16 +08:00
触发器 速度比较快
realpg
2015-08-28 18:18:29 +08:00
TRIGER
修改某个字段自动同步修改另外一个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/216630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX