sql >> データベース >  >> RDS >> Mysql

SQLステートメントのみを使用するワイルドカードを使用したmySQLドロップテーブル?

    ストアドプロシージャ内で動的SQLを使用してそれを行うことができます。次のようになります(テストされていません):

    CREATE PROCEDURE drop_like (IN pattern VARCHAR(64))
    BEGIN
      DECLARE q tinytext;
      DECLARE done INT DEFAULT FALSE;
      DECLARE cur CURSOR FOR
        SELECT CONCAT('DROP TABLE "', table_schema, '"."', table_name, '"')
        FROM information_schema.tables WHERE table_type = 'BASE TABLE' AND table_name LIKE pattern;
      DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
      OPEN cur;
    
      drop_loop: LOOP
        FETCH cur INTO q;
        IF done THEN
          LEAVE drop_loop;
        END IF;
        PREPARE stmt FROM @q;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
      END LOOP;
      CLOSE cur;
    END;
    


    1. WHMのデータベースのみのバックアップ

    2. SQLServerでのデータベースインデックス設計に関する5つの考慮事項

    3. WHERE条件の値のリストを含むパンダのread_sql

    4. Oracleストアドプロシージャのディレクトリからのファイルの削除