두 개의 SQL 데이터베이스가 있습니다. 하나는 다른 백업의 이전 백업입니다.특정 데이터베이스의 특정 테이블 열을 다른 데이터베이스로 병합
ssh 또는 phpMyAdmin 중 하나를 사용하여 [user_database0]에서 [user_database1]로 1 개의 특정 테이블 만 병합하고 싶습니다.
백업에서 복원하려는 테이블을 [prefix_table]이라고합니다.
그러나 [접두사] 테이블의 모든 열을 [주석] 열에 복원하고 싶지 않습니다. 내 가장 큰 우려의
하나는 [prefix_table]의 행의 일부가 삭제 된 나는 기존 데이터베이스에서 해당 삭제 된 행을 복원하지 않을 것입니다. 여기
은 예이다 :
* - 병합 [표 prefix_table][user_database0]에서 :
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 |
+------------+-------+------------+-----+-----------+
* -Into [표 prefix_table]에 [user_database1] :
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] 두 데이터베이스에서 일치하는 다음 [코멘트] 열에서 데이터를 덮어 있는지 확인해야한다. 다른 열 데이터가 변경되면 그대로 두어야하며 [주석] 만 업데이트해야합니다. 요약에서
(두 데이터베이스 하나 개에 phpMyAdmin 계정 같은 서버에) FROM
:.. user_database0] prefix_table [내용]
TO : user_database1]. [prefix_table]. [내용]
IF : [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]
두 테이블 간의 일치 여부를 나타내는 merge-only 업데이트 열'comments'는 무엇을 의미합니까 아니면 누락 된 행을 백업에 삽입합니까? –
죄송합니다. 내 용어가 여기에 잘못되었을 수 있습니다.하지만 ID 일치가 발생하면 이전 데이터베이스의 'comments'열 데이터를 바꿀뿐입니다. 새 행을 삽입하는 데 사용하지 마십시오. 현재 작동하는지 확인하려면 아래의 현재 테스트 솔루션. – Yevgen
그럼 aswer 울부 짖는 소리가 괜찮아요 –