gpt4 book ai didi

mysql - 将 MySQL 转储与现有表合并

转载 作者:行者123 更新时间:2023-11-29 13:10:06 25 4
gpt4 key购买 nike

使用表单插件的 WordPress 网站的用户意外删除了特定表单的所有条目。

我进入每日备份,我有一个 .sql 文件,其中包含存储表单信息的表的所有数据。

现在我需要将其合并回数据库,但转储使用 INSERT INTO 并立即停止并出现错误,因为大多数条目已经存在。

我尝试使用“ON DUPLICATE KEY UPDATE id=id”,但它忽略了所有内容。

我在这里和 Google 上搜索了几个小时,但没有找到任何解决方案。

转储的基本内容是:

LOCK TABLES `wp_frm_items` WRITE;
INSERT INTO `wp_frm_items` (`id`, `item_key`, `name`, `description`, `ip`, `form_id`, `post_id`, `user_id`, `parent_item_id`, `updated_by`, `created_at`, `updated_at`) VALUES (2737,'jb7x3c','Brad Pitt','a:2:{s:7:\"browser\";s:135:\"Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25\";s:8:\"referrer\";s:38:\"http://mysite/myform/\r\n\";}','192.168.1.1',6,0,NULL,NULL,NULL,'2013-06-30 15:09:20','2013-06-30 15:09:20');
UNLOCK TABLES;

ID #2737 存在,因此我要么忽略它,要么只更新现有表。

似乎有一种简单的方法可以将数据从 MySQL 转储导入现有数据库。

ps。我正在尝试在 phpMyAdmin 中执行此操作

最佳答案

如果这些行的数据未更改,您可以使用 REPLACE 而不是 INSERT

如果您想跳过行,一种可能是使用临时表。加载其中的行并删除那些具有旧表中存在的 id 的行。

DELETE FROM my_new_temptable AS temp WHERE temp.id IN (SELECT id FROM wp_frm_items)

然后将剩余的行插入到 wp_frm_items 中。

或者,您可以在从转储恢复之前将新行移动到临时表,然后将它们从那里复制回原始表。有很多可能性。

此外,许多 SQL 工具都具有表合并功能。

关于mysql - 将 MySQL 转储与现有表合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com