[SQL] MySQL의 INTO OUTFILE는 덮어 쓰기 파일을 기존의?
SQLMySQL의 INTO OUTFILE는 덮어 쓰기 파일을 기존의?
나는 CSV 파일을 생성하는 큰 SQL 스크립트를 작성했습니다. 나는 새로운 CSV 파일을 생성하고 웹 사이트에 사용할 가지고 매일 밤 cronjob에 전화를합니다.
나는 '/home/sites/example.com/www/files/backup.csv'내 파일을 저장할 수있어, 예를 들어 말
내 SQL입니다
SELECT * INTO OUTFILE '/home/sites/example.com/www/files/backup.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM ( ....
파일이 이미 존재하는 경우 MySQL은 나에게 오류를 제공
MySQL이 파일을 덮어 쓸 수 있도록하는 방법이 있나요?
나는 PHP 파일이 존재하는 경우 감지하고 다시 만들기 전에 삭제 할 수 있지만 내가 MySQL의에서 직접 할 수 있다면 그것은 더 간결하다.
해결법
-
==============================
1.아니, 그것을 덮어 쓸 수있는 방법은 없습니다. 워드 프로세서 :
아니, 그것을 덮어 쓸 수있는 방법은 없습니다. 워드 프로세서 :
당신이 하루 이상 존재 한 문제를 복구 할 수있는 여러 백업 수단을 가진 것으로, 매일 밤 다른 파일 이름을 사용하는 것이 더 좋은 생각이 될 수 있습니다. 그러면 항상 최신 전체 CSV를 가리키는 심볼릭 링크를 유지 할 수있다.
-
==============================
2.왜 RM -f /home/sites/example.com/www/files/backup.csv 크론에 의해 스크립트 달렸다에서?
왜 RM -f /home/sites/example.com/www/files/backup.csv 크론에 의해 스크립트 달렸다에서?
당신은 내부 MySQL의에서이 프로그램을 실행할 수 있습니다. 그냥 \와 쉘 탈출! 예를 들면 :
MySQL의> \! RM -f /home/sites/example.com/www/files/backup.csv
-
==============================
3.이 같은 작업을 위해 나는 파일을 삭제, 떠들썩한 파일에 배치 할
이 같은 작업을 위해 나는 파일을 삭제, 떠들썩한 파일에 배치 할
#!/bin/bash rm /path/to/backup.csv ./backup_sql_query.sh <<-- This contains the script to backup to CSV.
더 나은 옵션은 실제로 비록 타임 스탬프를 추가하는 것입니다. 디스크 공간이 시대에 비용이.
-
==============================
4.방법이 없다.
방법이 없다.
하나의 동적 문을 절차 수 가능.
CREATE PROCEDURE export_dynamic(IN file_name char(64)) BEGIN set @myvar = concat('SELECT * INTO OUTFILE ',"'",file_name,"'",' FROM Table1') ; PREPARE stmt1 FROM @myvar; EXECUTE stmt1; Deallocate prepare stmt1; END;
-
==============================
5.3 단계는이 권리를해야 할 일. 백업은 당신이자는 동안 매일 밤을 실행 (여부)됩니다
3 단계는이 권리를해야 할 일. 백업은 당신이자는 동안 매일 밤을 실행 (여부)됩니다
1 단계 : SQL의 저장 프로 시저 만들기
CREATE PROCEDURE backupCSV() SELECT * INTO OUTFILE '/home/sites/example.com/www/files/backup.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM ( ....
2 단계 : 이전 파일을 삭제하고 저장 프로 시저를 호출하는 스크립트 "/home/backupCSV.sh"를 만들기
echo "$(date +"%Y-%m-%d %T") START MAINTENANCE SCRIPT " rm /home/sites/example.com/www/files/backup.csv echo "$(date +"%Y-%m-%d %T") SUCCESS >> Old file deleted" mysql --user=[user] --password=[password] [dataBaseName] --execute="CALL backupCSV();" echo "$(date +"%Y-%m-%d %T") SUCCESS >> New file created" echo "$(date +"%Y-%m-%d %T") END MAINTENANCE SCRIPT "
3 단계 : 업데이트 crontab 명령 스크립트를 매일 실행
# m h dom mon dow user command 0 3 * * * root sh -x /home/backupCSV.sh
4 단계 (옵션) : 감사 나)
-
==============================
6.간단하게 mysql을 내에서 쉘 탈출하고 당신이 그것을 쓰기를 시도하기 전에 파일을 제거하는 rm 명령을 실행합니다. 예를 들면 :
간단하게 mysql을 내에서 쉘 탈출하고 당신이 그것을 쓰기를 시도하기 전에 파일을 제거하는 rm 명령을 실행합니다. 예를 들면 :
Mysql> \\! rm -f /home/sites/example.com/www/files/backup.csv
-
==============================
7.오래된 질문 ...하지만 당신은 문에 추가 할 수있는 옵션 덮어 쓰기 ON이있다
오래된 질문 ...하지만 당신은 문에 추가 할 수있는 옵션 덮어 쓰기 ON이있다
SELECT * INTO OUTFILE '/home/sites/example.com/www/files/backup.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' OVERWRITE ON ...
from https://stackoverflow.com/questions/960627/mysql-into-outfile-override-existing-file by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 여러 열 조인 (0) | 2020.06.29 |
---|---|
[SQL] 오라클 PL / SQL에서 플러시 출력 할 수있는 방법이 있습니까? (0) | 2020.06.29 |
[SQL] SQL Server 2005의 날짜로 하루를 추가 DateAdd 함수를 사용하여 (0) | 2020.06.29 |
[SQL] SQL : 하나 개의 컬럼이 널 (null) 값이 합계 3 열? (0) | 2020.06.29 |
[SQL] 최대 절전 모드 기준으로 쿼리 ManyToMany 관계 (0) | 2020.06.29 |