sql >> Databáze >  >> RDS >> Mysql

MySQL drop tabulky se zástupným znakem pouze pomocí SQL příkazu?

Můžete k tomu použít dynamické SQL, uvnitř uložené procedury. Vypadalo by to nějak takto (netestováno):

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. Levé vnější spojení funguje jako vnitřní spojení

  2. Přeskočí úloha SQL Server plánované spuštění, pokud již běží?

  3. Monitorování výkonu a audit PostgreSQL – nejlepší zdroje

  4. Vyhledávání chybového čísla zprávy