Bên trong Stored Procedure, dùng ALTER TABLE ten_cu RENAME ten_moi để đổi tên bảng. Lưu ý: DDL trong procedure gây commit ngầm, không thể rollback.
Ví dụ minh họa
Tạo bảng và thủ tục đổi tên:
mysql> CREATE TABLE DemoTable1859 (Id INT);
mysql> INSERT INTO DemoTable1859 VALUES(101),(102);
mysql> DELIMITER //
CREATE PROCEDURE alter_table_name_sp()
BEGIN
ALTER TABLE DemoTable1859 RENAME exampleTable;
END //
DELIMITER ;
Gọi thủ tục và kiểm tra:
mysql> CALL alter_table_name_sp(); mysql> SELECT * FROM exampleTable;
Kết quả:
+------+ | Id | +------+ | 101 | | 102 | +------+
Cảnh báo: DDL trong procedure khóa metadata, chặn truy vấn khác. Tránh dùng trong môi trường production concurrent cao.