"没有使用表格" phpMyAdmin触发错误

时间:2015-12-01 22:18:17

标签: php mysql wordpress triggers

我在Wordpress(4.3.1)上使用一个名为Event Manager的插件来创建一个事件日历。事件通过Wordpress上的页面添加,有关每个事件的数据存储在一个名为" wp_em_events"在Wordpress MySQL数据库中。在输入事件信息的页面上,我添加了要选择的城市列表,这些是Wordpress类别。这些用于为每个城市创建活动日历。例如,我使用此短代码为波士顿的事件创建日历页面:[events_calendar full = 1 category =" Boston"]。

我想在表中包含类别名称,其中存储了所有其他事件信息(wp_em_events),以便我可以按城市查询此表。

我正在使用phpMyAdmin中的触发器来获取添加到wp_em_events表的类别名称。找到类别名称有点困惑,但这是它的工作原理:

在wp_em_event表中,每个新事件都有一个post_id。

wp_em_event表中的post_id与wp_term_relationships表中的object_id匹配。

wp_term_relationships表中的term_taxonomy_id与wp_term_taxonomy表中的term_id匹配。

wp_term_taxonomy中的term_id与wp_terms表中的term_id匹配。 wp_terms还包含变量“name”,它是类别的名称(例如,Boston)。

换句话说:

wp_em_events.post_id = wp_term_relationship.object_id

wp_term_relationship.term_taxonomy_id = wp_term_taxonomy.term_id

wp_term_taxonomy.term_id = wp_terms.term_id

所以,我在wp_em_events中创建了一个名为“chapter”的新字段。如果我使用这个sql代码,我可以将类别名称添加到章节:

UPDATE wp_em_events
LEFT JOIN wp_term_relationships on (wp_em_events.post_id = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy on (wp_term_relationships.term_taxonomy_id=wp_term_taxonomy.term_taxonomy_id) 
LEFT JOIN wp_terms on (wp_term_taxonomy.term_id=wp_terms.term_id) 
SET wp_em_events.chapter = wp_terms.name;

我想设置一个触发器,每次将新行插入wp_em_events时,将wp_terms.name插入到wp_em_events.chapter中。我使用以下代码创建了触发器:

DROP TRIGGER IF EXISTS `test`;
CREATE DEFINER=`wordpressuser202`@`localhost` TRIGGER `test` 
BEFORE INSERT ON `wp_em_events` 
FOR EACH ROW 
BEGIN 
UPDATE wp_em_events 
LEFT JOIN wp_term_relationships on (NEW.post_id = wp_term_relationships.object_id) 
LEFT JOIN wp_term_taxonomy on (wp_term_relationships.term_taxonomy_id=wp_term_taxonomy.term_taxonomy_id) 
LEFT JOIN wp_terms on (wp_term_taxonomy.term_id=wp_terms.term_id) 
SET NEW.chapter = wp_terms.name; 
END

UPDATE语句中唯一的区别是我更改了wp_em_events。新的。所以post_id和chapter引用要插入的新行的列。但是,当我插入新记录时,出现错误:

1096 - 没有使用表格

有关如何解决此问题的任何想法?

0 个答案:

没有答案