为什么我的mySQL游标没有填充完整的变量列表



SQL Server家伙在这里,但我正在尝试编写一个mySQL存储过程,它获取一个临时表(来自SQL转储(并将其合并到现有数据库中。

我遇到的问题是,虽然光标确实填充了第一个变量col_name,但它不会填充其他两个变量——data_typeis_nullable

为了说明这个问题,我已经将过程中的核心游标部分分离出来。

根据我在网上找到的文档和其他帖子,这应该是可行的。

mySQL专家对这里可能发生的事情有什么想法吗?

DELIMITER $$;
CREATE PROCEDURE sp_Test()
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE col_name VARCHAR(64) DEFAULT "";
DECLARE data_type VARCHAR(64) DEFAULT "";
DECLARE is_nullable VARCHAR(3) DEFAULT "";

DECLARE column_cursor CURSOR FOR 
SELECT `COLUMN_NAME`, `DATA_TYPE`, `IS_NULLABLE` FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='country';

DECLARE CONTINUE HANDLER 
FOR NOT FOUND SET finished = 1;

OPEN column_cursor;

build_query: LOOP
FETCH column_cursor INTO col_name, data_type, is_nullable;

IF finished = 1 THEN
LEAVE build_query;
END IF;

SELECT col_name, data_type, is_nullable;    
END LOOP build_query;
CLOSE column_cursor;
END$$;
DELIMITER;

好的,想好了。这是因为变量名与列名相同。当我将变量名更改为dta_typeis_null时,它就起作用了。

最新更新