基于其他表自动将列添加到mysql表的方法

时间:2015-09-29 04:00:34

标签: php mysql database bash

我正在尝试找到一种基于其他表自动添加(并可能删除)mysql表中列的最佳方法。目前我通过cron(bash,php等)使用脚本来检查表A然后更新表B.我想知道是否有一种方法在mysql内部使用mysql脚本/语句在内部基于表的更新自动执行此操作?

仅作为解决问题的示例

表A:这是将手动更新的表

Name  : cloud_environments
cloud_env_id : id
cloud_env_name : name (ie dev1)
<DATA>
id:1, name:dev_env_1
id:2, name:staging_env_1
id:3, name:production_env_1

表B:在表A中放置新值时应自动更新,每个cloud_env_id应在表B中有三个字段,

  

cloud_env_id

     

环境状况

     

环境版本

所以初始表看起来像

name : cloud_env_details
cloud_env_detail_id : id
cloud_env_detail_name_id1 : dev1    //name:dev_env_1
cloud_env_detail_status_id1 : active    //status of dev_env_1
cloud_env_detail_version_id1 : 0.3.3    //version dev_env_1
cloud_env_detail_name_id2 : sta1    //name:staging_env_1
cloud_env_detail_status_id2 : active    //status of staging_env_1
cloud_env_detail_version_id2 : 0.2.3    //version staging_env_1
cloud_env_detail_name_id3 : prd1    //name:production_env_1
cloud_env_detail_status_id3 : active    //status of production_env_1
cloud_env_detail_version_id3 : 0.1.1    //version production_env_1

现在,如果我向表A添加新环境,例如

  

id4,名称dev_env_2

我想自动将附加模板列添加到表B

cloud_env_detail_name_id4 : dev2    //name:dev_env_2
cloud_env_detail_status_id4 : NULL    //status of dev_env_2
cloud_env_detail_version_id4 : NULL    //version dev_env_2

1 个答案:

答案 0 :(得分:2)

Triggers用于您所谈论的内容。你可以用它。