gpt4 book ai didi

mysql - 将特定表列从一个数据库合并到另一个数据库

转载 作者:行者123 更新时间:2023-11-29 00:08:59 24 4
gpt4 key购买 nike

我有两个 SQL 数据库。一个是另一个的旧备份。

我只想使用 ssh 或在 phpMyAdmin 内部将 [user_database0] 中的 1 个特定表合并到 [user_database1] 中。

我想从备份中恢复的那个表叫做 [prefix_table]。

但是,我不想恢复该表 [prefix_table] 中的所有列,只恢复 [comment] 列。


我最大的担忧之一是 [prefix_table] 中的一些行已被删除,我不想从旧数据库中恢复那些已删除的行。

这是一个例子:

*- 从 [user_database0] 合并表 [prefix_table]:

                      prefix_table                  
+---------------------------------------------------+
| id | name | comment | age | person_id |
+++++++++++++++++++++++++++++++++++++++++++++++++++++
| 1111 | name1 | old text 1 | 01 | 001 |
+------------+-------+------------+-----+-----------+
| 2222 | name2 | old text 2 | 02 | 002 |
+------------+-------+------------+-----+-----------+
| 3333 | name3 | old text 3 | 03 | 003 |
+------------+-------+------------+-----+-----------+
| 4444 | name4 | old text 4 | 04 | 004 |
+------------+-------+------------+-----+-----------+

*-进入[user_database1]中的表[prefix_table]:

                       prefix_table                   
+-----------------------------------------------------+
| id | name | comment | age | person_id |
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
| 1111 | namenew | new text 1 | 99 | 001 |
+------------+---------+------------+-----+-----------+
| 4444 | name4 | new text 4 | 04 | 004 |
+------------+---------+------------+-----+-----------+
| 5555 | name5 | text 1 | 05 | 005 |
+------------+---------+------------+-----+-----------+
| 6666 | name6 | text 2 | 06 | 006 |
+------------+---------+------------+-----+-----------+

*- 结果数据库[user_database1]:

                       prefix_table                   
+-----------------------------------------------------+
| id | name | comment | age | person_id |
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
| 1111 | namenew | old text 1 | 99 | 001 |
+------------+---------+------------+-----+-----------+
| 4444 | name4 | old text 4 | 04 | 004 |
+------------+---------+------------+-----+-----------+
| 5555 | name5 | text 1 | 05 | 005 |
+------------+---------+------------+-----+-----------+
| 6666 | name6 | text 2 | 06 | 006 |
+------------+---------+------------+-----+-----------+

所以它基本上必须检查表 [prefix_table] 在两个数据库中是否匹配,然后覆盖 [comment] 列中的数据。请注意,如果其他列数据发生变化,它应该保持原样,只有 [comment] 应该更新。


总结(两个数据库都在一个 phpMyAdmin 帐户的同一台服务器上)

来自:[user_database0].[prefix_table].[内容]

收件人:[user_database1].[prefix_table].[content]

如果:[id] 列在两个表中都匹配。


这是来自以下建议的工作版本:

UPDATE
[new_db_name].[table_name]
INNER JOIN
[old_db_name].[table_name]
ON
[new_db_name].[table_name].[column name] = [old_db_name].[table_name].[column name]
SET
[new_db_name].[table_name].[matching column name] = [new_db_name].[table_name].[matching column name]

最佳答案

以下将起作用。在这里,它使用旧评论更新新评论以匹配两者中的任何匹配 ID。

编辑:这应该为您指明正确的方向。我以前有过你的模式,我误解了你写的东西 - 我的错。

UPDATE [new_table_name] SET comment = [old_table_name].onecomment
FROM [new_table_name]
INNER JOIN [old_table_name] ON [new_table_name].aboutme_id = [old_table_name].aboutme_id

注意:上面的语法是 SQL Server,因为问题最初被错误地标记为 .

关于mysql - 将特定表列从一个数据库合并到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168743/

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