mysql의 모든 테이블에서 모든 행을 비우는 방법(sql)
저는 몇 가지 db 유틸리티 스크립트를 작성하고 있는데, 제가 해야 할 일 중 하나는 데이터만 재구축하고 스키마는 그대로 유지하는 것입니다.bash 및 mysql 도구(예: php 없음)를 사용하여 명령줄에서 이를 자동화하는 가장 쉬운 방법은 무엇입니까?
업데이트: 솔루션에서 모든 테이블을 하나의 명령으로 처리하고 가능하면 테이블을 추가하거나 제거할 경우 업데이트할 필요가 없습니다.
TRUNCATE tableName;
표의 내용을 비웁니다.
Q 편집에 대한 응답으로 편집:빠른 테스트를 통해 "show tables"를 하위 쿼리로 사용할 수 없는 것 같아서 적어도 2개의 쿼리를 수행해야 할 것 같습니다. bash에서 이 작업을 수행하는 방법을 모르기 때문에 여기 PHP 예제가 있는데 도움이 되길 바랍니다.
<?php
mysql_connect('localhost', 'user', 'password');
$dbName = "database";
mysql_select_db($dbName); /*added semi-colon*/
$result_t = mysql_query("SHOW TABLES");
while($row = mysql_fetch_assoc($result_t))
{
mysql_query("TRUNCATE " . $row['Tables_in_' . $dbName]);
}
?>
최소한 오류 처리가 필요합니다.
unix/linux에 있는 경우 셸을 사용하여 다음을 실행할 수 있습니다.
mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]
또는 Rational Relational은 이를 위해 저장 프로시저를 작성하는 방법에 대한 블로그 게시물을 가지고 있습니다.
다음은 데이터베이스 목록에서 모든 테이블을 잘라내는 BASH 원라이너입니다.
for j in database_name1 database_name2; \
do for i in `echo 'show tables ' |mysql $j \
|grep -v 'Tables_in'`; do mysql $j -e "truncate $i"; done; done
잘리면 프롬프트 없이 대상 테이블에서 모든 데이터가 제거됩니다.먼저 "자르기 $i"를 "i 설명"으로 변경하여 결과 집합의 테이블이 비워지도록 합니다.
한 가지 더: 모든 MySQL 데이터베이스의 모든 테이블에 대해 반복할 경우( 제외)information_schema
그리고.mysql
바라건대!), 위의 "database_name1 database_name2"를 다음과 같이 대체합니다.
`echo 'show databases' | mysql | awk '$1 != "information_schema" && \
$1 != "mysql" {if (NR > 1) {print}}'`
다음은 모든 MySQL 데이터베이스의 모든 테이블에 대해 OPTIMIZE를 수행하는 덜 파괴적인 샘플입니다(위에서 언급한 예외).
for j in `echo 'show databases' | mysql | \
awk '$1 != "information_schema" && $1 != \
"mysql" {if (NR > 1) {print}}'`; do for i in \
`echo 'show tables ' |mysql $j |grep -v \
'Tables_in'`; do mysql -e "optimize table $j.$i"; \
done; done
필요에 따라 많은 두려움과 함께 수행된 "동작"을 수정합니다!
phpMyAdmin을 통해 이 작업을 수행하려는 사용자는 다음 질문을 참조하십시오.
데이터베이스를 삭제하지 않고 phpMyAdmin에서 데이터베이스의 모든 테이블 내용을 삭제하려면 어떻게 해야 합니까?
언급URL : https://stackoverflow.com/questions/454174/how-to-empty-all-rows-from-all-tables-in-mysql-in-sql
'programing' 카테고리의 다른 글
Magento - 사용자 입력에 따른 제품 항목 속성 견적/주문 (0) | 2023.09.04 |
---|---|
스핀 잠금 구현이 올바르고 최적입니까? (0) | 2023.09.04 |
divid에 자녀가 있는지 여부를 쿼리합니다. (0) | 2023.09.04 |
PowerShell에서 디렉터리 제외 (0) | 2023.09.04 |
Sinon 오류 이미 래핑된 함수를 래핑하려고 했습니다. (0) | 2023.09.04 |