我想编写一个存储过程,它遍历数据库中的所有表并执行一些操作。
drop procedure if exists p2;
DELIMITER //
CREATE PROCEDURE `p2` ()
LANGUAGE SQL
DETERMINISTIC
SQL SECURITY DEFINER
COMMENT 'A procedure'
BEGIN
declare cur1 cursor for
show tables from my_database_name
END//
call p2;
这不起作用;我收到一个错误,说我在“show tables from my_database_name”附近的SQL语法中有错误
当然,我不想做
show tables from my_database_name
我真的想说show tables from database()
或show tables from (select database())
,两者都不起作用。帮忙?我可以直接用SQL来完成这项工作吗?还是我需要首先从程序中调用
show tables
,然后在那里迭代结果集?如何创建一个游标来捕获database()
或show tables
之类的值? 最佳答案
show tables
不是一个SQL查询-它是以不同的方式处理的-但是您可以查询the tables in the information_schema
database。你需要像SELECT table_name FROM information_schema.tables WHERE table_schema='db_name'
这样的东西。
关于mysql - MySQL:声明“显示表”的游标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9285338/