为什么 mysql 程序 return 为空
why mysql procedure return null
我有一个简单的 mysql 过程,它必须 return 一个查询字符串。但是,它 return 几乎每次 QueryResult
(列名)作为 <null>
值。
create procedure return_table_rename_query(
IN targetTable VARCHAR(100),
IN tblPrefix VARCHAR(100)
)
BEGIN
SET @returnQuery = CONCAT('SELECT "MYSQLIMPORT can not rename table for target ', @targetTable, '";');
SET @totalRows = (SELECT COUNT(*) FROM table);
if IFNULL(@totalRows, 0) > 0
then
SET @returnQuery = CONCAT('drop table if exists table_name.', ...);
end if;
SELECT @returnQuery AS 'QueryResult';
end;
@targettable 与 targettable 不是同一个变量 - 您混合了用户定义的变量和参数变量,@targettable 似乎很可能为 null,如果 concat 中的任何元素为 null,则结果为 null。
请阅读How to declare a variable in MySQL?
我有一个简单的 mysql 过程,它必须 return 一个查询字符串。但是,它 return 几乎每次 QueryResult
(列名)作为 <null>
值。
create procedure return_table_rename_query(
IN targetTable VARCHAR(100),
IN tblPrefix VARCHAR(100)
)
BEGIN
SET @returnQuery = CONCAT('SELECT "MYSQLIMPORT can not rename table for target ', @targetTable, '";');
SET @totalRows = (SELECT COUNT(*) FROM table);
if IFNULL(@totalRows, 0) > 0
then
SET @returnQuery = CONCAT('drop table if exists table_name.', ...);
end if;
SELECT @returnQuery AS 'QueryResult';
end;
@targettable 与 targettable 不是同一个变量 - 您混合了用户定义的变量和参数变量,@targettable 似乎很可能为 null,如果 concat 中的任何元素为 null,则结果为 null。
请阅读How to declare a variable in MySQL?