16

データベース内のテーブルを削除せずに、phpMyAdminのデータベース内のすべてのテーブルの内容を空にするにはどうすればよいですか?

開発中は1時間に数回これを行うので、60以上のテーブルすべてで毎回個別に[空]をクリックするのは避けたいと思います。

4

10 に答える 10

35

IMHOの最も簡単な解決策は次のとおりです。

  • phpmyadminで、データベースリスト(左側)で切り捨てるデータベースを選択します
  • メインビューを下にスクロールすると、[すべてチェック]チェックボックスが表示され、その横に[空]を選択できるドロップダウンボックスが表示されます。終わり。
于 2015-09-22T06:33:11.213 に答える
7

複数のDELETEステートメント(テーブルごとに1つ)を使用してSQLスクリプトを作成し、実行します。

phpMyAdminに入り、必要なデータベースを選択します。[SQL]タブを選択し、SQLスクリプトをウィンドウに貼り付けます。Goを押します。

ここも見てください:

MySQLデータベースからすべてのテーブルを削除せずに削除します

于 2010-03-27T15:17:31.573 に答える
4

実際には、phpMyAdminによってすべてのテーブルデータを切り捨てることができます。

phpMyAdminでは、次の手順で実行できます。

1)u DBを選択し、次のようにエクスポート操作を実行します。

カスタムエクスポート方法を選択します

  • フォーマット固有のオプションで[テーブルのダンプ->データ]を選択します
  • オブジェクト作成オプションで「DROPTABLE...ステートメントの追加」を選択します。

このステップにより、phpMyAdminは、すべてのテーブルの完全なリストの1つのSQLスクリプトを作成するのに役立ちます

3)インポート操作を実行して、このスクリプトで各空白のテーブルを1つずつ削除および作成します

ここに画像の説明を入力してください

于 2014-02-19T06:15:19.940 に答える
3

このクエリから始めることができます

SELECT T.*
FROM INFORMATION_SCHEMA.tables T
WHERE T.table_type = 'BASE TABLE'

そして、これらの結果を繰り返し処理して、「DELETEFROM」+T.Table_Nameの調整に合わせて動的SQL文字列を作成します。

于 2010-03-27T15:19:48.230 に答える
2

TRUNCATE TABLEステートメントはテーブルを完全に空にします(MySql 3.23以降)。

特定のデータベースで再利用できるスクリプトを作成できます。これは一般的ではありませんが、新しいデータベースを作成する必要がなく、新しいデータベースで開始するたびにログインする必要がありません。

自分でスクリプトを作成する方法は次のとおりです。WebブラウザでphpMyAdminに移動し、データベースを選択します。[SQL]タブをクリックして、を実行し'SHOW TABLES'ます。印刷に適した形式を選択し、内容をテキストエディタにコピーします。

次に、テーブル名ごとに、次の形式で書き直します。

TRUNCATE TABLE <tablename>;

注:テーブルが多い場合は、正規表現を使用できます

于 2011-03-07T08:49:53.673 に答える
2

残念ながら、TRUNCATE DATABASE同等のものはありません。そうは言っても、データベース内のすべてのテーブルを調べてそれらを切り捨てる、ある種のストアドプロシージャを使用できる可能性があります。ここでそのようなものを見つけましたが、それが機能するかどうかはわかりません。(おそらくコメントディスカッションも読む必要があります)

于 2010-03-27T15:17:28.393 に答える
2

phpmyadmin関数からすべてのデータを簡単に削除できます。この質問が投稿された2010年にはこの機能が存在しなかったのかもしれませんが、初心者なら誰でも参照できると思います。

データベースからすべてのデータを削除します

于 2018-04-24T07:06:11.930 に答える
1
drop procedure if exists truncate_tables;

delimiter #
create procedure truncate_tables()
begin
 declare tab_name varchar(64);
 declare done tinyint unsigned default 0;

 declare table_cur cursor for select t.table_name
 from 
  information_schema.schemata s
  inner join information_schema.tables t on s.schema_name = t.table_schema
 where
   s.schema_name = database() and t.table_type = 'BASE TABLE';

 declare continue handler for not found set done = 1;

 open table_cur;
 repeat
   fetch table_cur into tab_name;
   set @cmd = concat('truncate table ', tab_name);

   prepare stmt from @cmd;
   execute stmt;
 until done end repeat;

 close table_cur;
end #
于 2010-03-27T15:45:10.267 に答える
1

次のようにのみテーブル構造をエクスポートできます。

mysqldump -u root -p --no-data mydb > backup_info.sql

次に、データベース全体を削除して再作成し、バックアップから復元します。

全体をスクリプト化するのに十分簡単です。

于 2014-02-08T17:07:21.080 に答える
0

実際、もっと深く行き、これを書きました:

SET @command:='';
SELECT @command:=CONCAT(@command, 'TRUNCATE TABLE ',T.TABLE_NAME,';')
FROM INFORMATION_SCHEMA.tables T
WHERE T.table_type = 'BASE TABLE' AND T.table_schema='YOUR_TABLE_SCHEMA';
PREPARE bye_world FROM @command;
EXECUTE bye_world;
DEALLOCATE PREPARE bye_world;

提供されたスキーマからすべてのテーブル名を選択しYOUR_TABLE_SCHEMA、それらをユーザー変数に入れて、@command次のようにそれぞれのクエリを形成します。TRUNCATE TABLE TABLE_NAME;

次に、選択したステートメントを準備して実行します。クエリの前にユーザー変数を宣言する必要があることに注意してください。宣言しない0と、ステートメントが台無しになります。

チュートリアル

MySQLDROPTABLEを使用して既存のテーブルを削除する

于 2015-07-22T06:57:44.797 に答える