我尝试将一个数据库迁移到另一个数据库,只使用MySQL,它是两个WordPress数据库,我想把特定帖子类型的所有帖子(表格wp_posts)和所有相应的帖子元数据(表wp_postmeta,使用wp_posts ID)。 我的逻辑是使用带偏移的循环,所以我可以插入帖子,然后使用LAST_INSERT_ID()来放置postmeta。
很抱歉,如果这听起来很混乱,我不确定如何解释得很好,如果你不了解WP的结构我在最后一段写的内容可能绝对没有如果你了解MySQL。 无论哪种方式,这里是我使用的代码,它给了我一个错误:
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END LOOP main' at line 1 */
SET @offsett := 0;
SELECT @maxx := COUNT(*) FROM quest.wp_posts WHERE post_type = 'page';
SET @indexx := 0;
main: LOOP
SET @indexx := @index + 1;
IF @indexx > @max THEN
LEAVE main;
END IF;
SELECT @post_id := ID FROM quest.wp_posts WHERE post_type = 'pages' LIMIT 1 OFFSET @offsett;
INSERT INTO new_quest.wp_posts (post_author, post_date, post_date_gmt, post_content, post_title, post_name, post_type) SELECT 1, qp.post_date, qp.post_date_gmt, qp.post_content, qp.post_title, qp.post_name, 'peterete' FROM quest.qp WHERE post_type = 'page' LIMIT 1 OFFSET @offsett;
INSERT INTO new_quest.wp_postmeta (post_id, meta_key, meta_value) SELECT LAST_INSERT_ID(), qp.meta_key, qp.meta_value FROM quest.wp_postmeta qp WHERE post_id = @post_id;
SET @offset := @offset + 1;
END LOOP main;
有人能指出我正确的方向吗?