如何根据新插入的行中的值创建SQL触发器以插入新行?

时间:2013-12-15 22:25:09

标签: php mysql sql wordpress triggers

我想创建一个触发器,根据新插入的行内的值插入2个新行。我正在使用wordpress。

例如,我的表WP_POSTMETA有3列:POST_ID, META_KEY, META_VALUE。当在wordpress中创建新帖子时,该表将填充多个新行,每个行包含相同的POST_ID值。但是,这些行具有不同的META_VALUEMETA_KEY值。我正在尝试编写一个可以触发的触发器:

  • 检测何时插入包含<{1>} _thumbnail_id 的新行,并在META_KEYPOST_ID的{​​{1}}处插入新行 _thumbnail_id 及其META_VALUE是从另一行检测到的值,该行也具有相同的原始META_VALUE,其中'POST_ID'

  • 创建第二行,其中META_KEY = '_jig_image_link'再次是 thumbnail_id POST_IDMETA_VALUE列是静态字符串条目。

2 个答案:

答案 0 :(得分:0)

至少就像你所描述的那样,你无法用MySQL中的触发器来做到这一点。

如果您针对您定义该触发器的表(在您的情况INSERT中)发出任何DML语句(在您的情况下为wp_postmeta s),MySQL将抛出错误。

  

<强> E.1. Restrictions on Stored Programs
  在存储的函数或触发器中,不允许修改a   表格已被正在使用(用于读取或写入)   调用函数或触发器的语句。

答案 1 :(得分:0)

这可能是您应该在应用程序中而不是在数据库层执行的操作。

您可以使用wp_insert_post()add_post_meta()等功能轻松完成此操作。