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


How do I create a SQL trigger to insert new rows based on a value in a newly inserted row?

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

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

  • 检测何时插入包含_thumbnail_idMETA_KEY的新行,并插入新行,其中POST_ID_thumbnail_id

  • 创建第二行,其中POST_ID再次为thumbnail_idMETA_VALUEMETA_KEY列为静态字符串条目。

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

您已经获得了wp_insert_post()add_post_meta()这样的函数,以便轻松地执行此操作。

您将无法在MySQL中使用触发器,至少正如您所描述的那样。

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

E.1.对存储程序的限制
在存储的函数或触发器中,不允许修改表已被调用函数或触发器的语句。