根据不同表中的值自动更新表

时间:2014-08-23 21:46:11

标签: mysql database-design triggers

我想在一个表上设置一个自动更新,该表将使用相同的表结构更新/添加/删除不同数据库表中的行,具体取决于其中一个列和其他表中的值。

我们的想法是仅在一个地方(DB1)维护核心数据,并在相关数据库表(DB2和DB3)中自动填充所有更改。

不希望使用视图,因为p_cross表将有数百万行。

例如,我们有以下情况:

=========
DB1:
=========

project
--------------------------------
| id | project| db    | table  |
--------------------------------
|  1 |   A    |  DB2  |  p     |
|  2 |   B    |  DB3  |  p     |
--------------------------------

p
------------------------
| id | name  | comment |
------------------------
|  1 | first |         |
|  2 | second|         |
|  3 | third |         |
|  4 | fourth|         |
------------------------

p_cross
---------------------
| id_project | id_p |
---------------------
|    1       |   2  |
|    1       |   4  |
|    2       |   1  |
|    2       |   3  |
|    2       |   2  |
---------------------


=========
DB2:
=========

p
------------------------
| id | name  | comment |
------------------------
|  2 | second|         |
|  4 | fourth|         |
------------------------


=========
DB3:
=========

p
------------------------
| id | name  | comment |
------------------------
|  1 | first |         |
|  2 | second|         |
|  3 | third |         |
------------------------

所以我想在db1.p上设置一个自动更新,它将在db1.p_cross和db1.project中查找要更新的数据库和表。

例如,如果我更新"第二个"到" second_upd"在db1.p中,它将在db1.p_cross中查找哪些项目与此记录相关,将在db1.project表中查找相应的id_project并查看要更新的数据库和表 - 在我们的示例中为db3.p

线索,提示或想法?

0 个答案:

没有答案