我想创建一个触发器,根据新插入的行内的值插入2个新行。我正在使用wordpress。
例如,我的表WP_POSTMETA
有3列:POST_ID, META_KEY, META_VALUE
。当在wordpress中创建新帖子时,该表将填充多个新行,每个行包含相同的POST_ID
值。但是,这些行具有不同的META_VALUE
和META_KEY
值。我正在尝试编写一个可以触发的触发器:
检测何时插入包含<{1>} _thumbnail_id 的新行,并在META_KEY
为POST_ID
的{{1}}处插入新行 _thumbnail_id 及其META_VALUE
是从另一行检测到的值,该行也具有相同的原始META_VALUE
,其中'POST_ID'
。
创建第二行,其中META_KEY = '_jig_image_link'
再次是 thumbnail_id ,POST_ID
和META_VALUE
列是静态字符串条目。
答案 0 :(得分:0)
至少就像你所描述的那样,你无法用MySQL中的触发器来做到这一点。
如果您针对您定义该触发器的表(在您的情况INSERT
中)发出任何DML语句(在您的情况下为wp_postmeta
s),MySQL将抛出错误。
<强> E.1. Restrictions on Stored Programs 强>
在存储的函数或触发器中,不允许修改a 表格已被正在使用(用于读取或写入) 调用函数或触发器的语句。
答案 1 :(得分:0)
这可能是您应该在应用程序中而不是在数据库层执行的操作。
您可以使用wp_insert_post()
和add_post_meta()
等功能轻松完成此操作。