Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mySQL upuszcza tabele za pomocą Wildcard przy użyciu tylko instrukcji SQL?

W tym celu można użyć dynamicznego SQL, wewnątrz procedury składowanej. Wyglądałoby to mniej więcej tak (niesprawdzone):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP PDO - Pokazywanie hasła przy zbyt wielu połączeniach

  2. Serwer MySQL zniknął podczas aktualizacji UPDATE (ogromne QUERY, około 85 MB) przy użyciu mysli PHP

  3. Jak WYBRAĆ na podstawie wartości innego SELECT

  4. Sprawdź równość w polu MySQL Float

  5. Upsert z dołączonym atrybutem updated_at