14

削除クエリにテーブル名を実際にリストせずに複数のテーブルを簡単に削除したいのですが、削除するテーブルには「wp_」という接頭辞が付いています

4

8 に答える 8

15

私はAngelinのものと非常によく似たクエリを使用しました。テーブルが数個以上ある場合は、の最大長を増やす必要がありgroup_concatます。それ以外の場合、クエリは返される切り捨てられた文字列をバーフしgroup_concatます。

これは私の10セントです:

-- Increase memory to avoid truncating string, adjust according to your needs
SET group_concat_max_len = 1024 * 1024 * 10;
-- Generate drop command and assign to variable
SELECT CONCAT('DROP TABLE ',GROUP_CONCAT(CONCAT(table_schema,'.',table_name)),';') INTO @dropcmd FROM information_schema.tables WHERE table_schema='databasename' AND table_name LIKE 'my_table%';
-- Drop tables
PREPARE str FROM @dropcmd; EXECUTE str; DEALLOCATE PREPARE str;
于 2012-10-16T05:09:56.777 に答える
8

ソリューションの1つを共有するだけです:

mysql> SELECT CONCAT( "DROP TABLE ",
GROUP_CONCAT(TABLE_NAME) ) AS stmt

FROM information_schema.TABLES

WHERE TABLE_SCHEMA = "your_db_name" AND TABLE_NAME LIKE "ur condition" into outfile '/tmp/a.txt';

mysql> ソース /tmp/a.txt;

于 2011-07-20T07:48:24.893 に答える
4

エラーのリスクのないシンプルなソリューション:

mysqldumpDROP次のようなコマンドを含むファイルを作成します

DROP TABLE IF EXISTS `wp_matable`;

' grep' に " DROP TABLE wp_" を指定すると、実行するコマンドが表示されます

したがって、ドロップはこれらの 3 行で行われます (drop.sql を編集して、どのテーブルが以前にドロップされるかを確認できます)。

mysqldump -u user -p database > dump.sql 
grep "DROP TABLE `wp_" dump.sql > drop.sql
mysql -u user -p database < drop.sql
于 2014-01-13T08:57:29.873 に答える
-3

c:\xampp\mysql\data\your フォルダーに移動します

削除する複数のテーブルを選択し、削除ボタンを押します

ありがとう

于 2016-07-18T13:18:56.440 に答える
-4

mysql で単一のテーブルを削除する:

DROP TABLE TABLE_NAME;

于 2015-09-02T03:23:25.450 に答える