Mysql
 sql >> база данни >  >> RDS >> Mysql

mySQL пуска таблици с заместващ знак, използвайки само SQL израз?

Можете да използвате динамичен 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете записи с максимална стойност за всяка група групирани SQL резултати

  2. MySQL:Брой записи с последователни месеци

  3. Препоръчва ли се LIMIT 1 за заявка, където условието WHERE се основава на PK?

  4. Как да получите достъп до обект RowDataPacket

  5. Кога се препоръчва използването на MySQL BLOB?