循环通过信息模式mysql的结果
我试图找到所有具有名为RecordID的列名的表,然后在这些表上循环以查看RecordID是否大于5000循环通过信息模式mysql的结果,mysql,stored-procedures,cursor,Mysql,Stored Procedures,Cursor,我试图找到所有具有名为RecordID的列名的表,然后在这些表上循环以查看RecordID是否大于5000 CREATE PROCEDURE check_IDs () BEGIN DECLARE done INT DEFAULT 0; DECLARE result varchar(50); DECLARE cur1 CURSOR for SELECT table_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_n
CREATE PROCEDURE check_IDs ()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE result varchar(50);
DECLARE cur1 CURSOR for SELECT table_name FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name = 'RecordID' ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO result;
IF done THEN
LEAVE read_loop;
END IF;
Select * from `result` where RecordID > 5000;
END LOOP;
close cur1;
END;
它说找不到表结果 一定是
PREPARE stmt FROM CONCAT('SELECT * FROM `', result, '`WHERE RecordID > 5000;)';
EXECUTE stmt;
DEALLOCATE stmt;
而不是
Select * from `result` where RecordID > 5000;
参见以下示例(最后一个)
您的语句将使用硬编码的表名result
。您的数据库中似乎没有这样的表