데이터베이스가 다른 사용자에있을 때 한 데이터베이스의 테이블에서 다른 데이터베이스의 테이블로 데이터를 복사하는 가장 좋은 방법은 무엇입니까?
사용할 수 있다는 것을 알고 있습니다
INSERT INTO database2.table2 SELECT * from database1.table1
그러나 여기에서 문제는 모두이다 database1
과는 database2
다른 MySQL의 사용자 받고있다. 따라서 user1
액세스 database1
만 user2
가능 database2
합니다. 어떤 생각?
답변
쉘 액세스 권한이 mysqldump
있는 경우 컨텐츠를 덤프하여에 database1.table1
파이프 할 mysql
수 database2
있습니다. 여기서 문제 table1
는 여전히 그렇습니다 table1
.
mysqldump --user=user1 --password=password1 database1 table1 \
| mysql --user=user2 --password=password2 database2
다른 쿼리 로 이름을 바꿔야 table1
할 수도 있습니다 table2
. 다른 방법으로 sed를 사용하여 파이프 간 table1을 table2로 변경할 수 있습니다.
mysqldump --user=user1 --password=password1 database1 table1 \
| sed -e 's/`table1`/`table2`/' \
| mysql --user=user2 --password=password2 database2
table2가 이미 존재하면 테이블 생성을 만들지 않는 첫 번째 mysqldump에 매개 변수를 추가 할 수 있습니다.
mysqldump --no-create-info --no-create-db --user=user1 --password=password1 database1 table1 \
| sed -e 's/`table1`/`table2`/' \
| mysql --user=user2 --password=password2 database2
답변
CREATE TABLE db1.table1 SELECT * FROM db2.table1
여기서 db1은 대상이고 db2는 소스입니다.
답변
PHPMyAdmin 을 사용하는 경우 정말 간단 할 수 있습니다. 다음 데이터베이스가 있다고 가정하십시오.
DB1 & DB2
DB1에는 DB2에 복사하려는 테이블 사용자가 있습니다.
PHPMyAdmin에서 DB1을 연 다음 users 테이블로 이동하십시오.
이 페이지에서 오른쪽 상단 의 “작업” 탭을 클릭하십시오 . 조작 아래 에서 (database.table)에 테이블 복사 섹션을 찾으십시오 .
당신은 끝났습니다!
답변
MySql Workbench : 강력 추천
마이그레이션 문제를 쉽게 처리 할 수 있습니다. MySql과 SqlServer간에 선택된 데이터베이스의 선택된 테이블을 마이그레이션 할 수 있습니다. 반드시 시도해보십시오.
답변
MySQL에 Navicat을 사용합니다 …
모든 데이터베이스 조작이 쉬워집니다!
Navicat에서 두 데이터베이스를 모두 선택한 다음 사용하면됩니다.
INSERT INTO Database2.Table1 SELECT * from Database1.Table1
답변
나는 이것이 오래된 질문이라는 것을 알고 여기에 도착하는 사람이 더 나은 접근 방식을 얻도록 대답합니다.
5.6.10부터는 할 수 있습니다
CREATE TABLE new_tbl LIKE orig_tbl;
https://dev.mysql.com/doc/refman/5.7/en/create-table-like.html 문서를 참조하십시오.
답변
테이블이 동일한 mysql 서버에 있으면 다음을 실행할 수 있습니다
CREATE TABLE destination_db.my_table SELECT * FROM source_db.my_table;
ALTER TABLE destination_db.my_table ADD PRIMARY KEY (id);
ALTER TABLE destination_db.my_table MODIFY COLUMN id INT AUTO_INCREMENT;