Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环通过信息模式mysql的结果_Mysql_Stored Procedures_Cursor - Fatal编程技术网

循环通过信息模式mysql的结果

循环通过信息模式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

我试图找到所有具有名为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_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
。您的数据库中似乎没有这样的表