[sql] 쿼리 별 MySQL 덤프

mysqldump단일 로 할 수 SQL query있습니까?

내보내기 할 때 와 마찬가지로 전체 데이터베이스 를 덤프하는 것을 의미 phpmyadmin합니다.SQL



답변

mysqldump가 아니라 mysql cli …

mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase

원하는 경우 파일로 리디렉션 할 수 있습니다.

mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt

업데이트 : 원본 게시물은 데이터베이스에서 쿼리로 덤프 할 수 있는지 묻습니다. 그가 요구 한 것과 그 의미는 달랐습니다. 그는 실제로 모든 테이블을 mysqldump하고 싶었습니다.

mysqldump --tables myTable --where="id < 1000"


답변

이 작동합니다

mysqldump --databases X --tables Y --where="1 limit 1000000"


답변

다음과 같이 쿼리를 csv로 덤프 할 수 있습니다.

SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'


답변

where 쿼리를 사용하여 테이블을 덤프하십시오.

mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql

전체 테이블을 덤프하십시오.

mysqldump mydatabase mytable > data.sql

노트:

  • 교체 mydatabase, mytable그리고 원하는 값으로 어디 문.
  • 기본적 으로 출력에 및 명령문 mysqldump이 포함됩니다 . 따라서 저장된 데이터 파일에서 복원 할 때 테이블의 모든 데이터를 삭제하지 않으려면 옵션 을 사용해야합니다 .DROP TABLECREATE TABLE--no-create-info
  • 원하는 데이터베이스 호스트, 사용자 및 비밀번호를 각각 지정하기 위해 위의 예제 명령에 적절한 -h, -u-p옵션 을 추가해야 할 수도 있습니다 .

답변

mysqldump에서 –where 옵션을 사용하여 대기중인 출력을 생성 할 수 있습니다.

mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql

test.t1에서 최대 100 개의 행이 데이터베이스 테이블에서 덤프됩니다.

건배, WB


답변

마지막 n 개의 레코드를 파일로 내보내려면 다음을 실행할 수 있습니다.

mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql

위의 내용은 내보내는 테이블에 자동 증가 ID 열이 있다고 가정하면 마지막 100 개의 레코드를 export_file.sql에 저장합니다.

사용자, 로컬 호스트, 데이터베이스 및 테이블 값을 변경해야합니다. 선택적으로 id 열과 내보내기 파일 이름을 변경할 수 있습니다.


답변

MySQL Workbench는 GUI에서이 기능을 깔끔하게 갖추고 있습니다. 쿼리를 실행하고 내보내기 / 가져 오기 옆에있는 저장 아이콘을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 목록에서 “SQL INSERT 문 (* .sql)”을 선택하십시오.

여기에 이미지 설명을 입력하십시오

이름을 입력하고 저장을 클릭 한 후 테이블 이름을 확인하면 덤프 파일이 생성됩니다.