2016-10-15 13 views
1

$data = mysql_query("truncate 'DATABASE_NAME' ");mysqlに特定のデータベースのテーブルのすべてのデータを切り捨てるクエリがありますか?

我々は、mysqlのクエリまたはTRUNCATE「テーブル名」のような単一のテーブルを持つデータベースのすべてのテーブルを切り捨てるために管理することができますか?

+0

テーブルをループして1つずつ切り捨てる必要があります。 –

+0

あなたはループ内のすべてのテーブル名を言及する必要があります--- Gordon Linoff – Chinna

+0

。 。または、システムテーブル/ビューなど、それらを取得する他の方法を見つけることができます。 –

答えて

0

データベース内のすべてのテーブルをループすることで、この問題を解決できます。テーブル名を取得するには、MySQLのINFORMATION_SCHEMAを使用します。溶液はこのようになります。簡潔にするため

//database connection information - adjust as needed 
$dsn = 'mysql:dbname=testdb;host=127.0.0.1'; 
$user = 'dbuser'; 
$password = 'dbpass'; 
//connect to the DB using PDO 
$dbh = new PDO($dsn, $user, $password); 
//query all tables in a database 
$stmt = $dbh->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='your_database_name_here';"); 
//truncate tables one by one 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
{ 
    $dbh->query('TRUNCATE TABLE '.$row['TABLE_NAME']); 
} 
unset($stmt, $dbh); 

(データベースへの接続が確立できない、例えばキャッチ例外)処理エラーが省略されています。

PHP 5.5では廃止され、PHP 7では完全に削除されているため、古いMySQL APIは使用しないでください。代わりにmysqliまたはPDOを使用する必要があります。詳しい情報を得るには、"Choosing an API"のphp.netページをご覧ください。

関連する問題