2014-10-07 3 views
0

fooDBbarDB 두 개의 데이터베이스에는 options이라는 구조적으로 동일한 테이블이 있습니다. fooDB.options에있는 하나의 셀 값을 barDB.options에 복사하고 싶습니다. 나는 (로컬이 아닌) 아웃 파일을 사용할 수 없으며 두 사용자 모두 두 데이터베이스 중 하나에 대한 액세스 만 가지고있다. 값이 너무 복잡하므로 마우스로 복사하여 붙여 넣기가 작동하지 않습니다.MySQL CLI를 사용하여 한 데이터베이스에서 다른 데이터베이스로 값 복사

어떤 아이디어, 어떻게 MySQL의 명령 줄 클라이언트와 값을 복사? 나는 변수 사용에 대해 생각했지만 AFAIK는 동일한 CLI 세션에서 사용자를 변경할 수 없습니다. 어떤 아이디어? 그것은 간단하고 빠른 솔루션이어야합니다 : 물론 내가 할 수있는 mysqldump 또는 뭐든간에,하지만 이것은 하나의 값에 대한 과잉이다 (너무 많은 시간이 걸립니다).

답변

0

아이디어는 필요한 값을 업데이트 (또는 삽입)하는 SQL 스크립트를 생성하는 것입니다. SQL 사용이 명령을 생성하려면 (사용자 이름 1 - fooDB 데이터베이스에 대한 사용자 이름) :

UPDATE barDB.options SET value = 'Your value here' WHERE id = 1; 

그런 다음이 스크립트를 실행 (:

mysql -u username1 -p -N -s -r -e "SELECT CONCAT('UPDATE barDB.options SET value = ', QUOTE(value), ' WHERE id = 1;') FROM fooDB.options WHERE id = 1" > file_name.sql 

은 그럼 당신은 같은 뭔가 file_name.sql를 얻을 수 username2 - barDB 데이터베이스의 사용자 이름) :

mysql -u username2 -p < file_name.sql 

일부 MySQL command line options 사용 :

  • -N은 - nontabular 출력 형식을
  • -r 사용 - -

내가 이스케이프 문자를 사용하지 탈출 비활성화 문자를

  • -s 결과
  • 에서 열 이름을 쓰지 않는다 특수 문자는 이미 QUOTE function으로 이스케이프 처리되어 있기 때문에 명령 행 옵션에서 n SELECT 쿼리.

    관련 문제