我正在尝试编写一个存储过程来创建一个临时表,其中包含基于2个表的链接数据创建的变量列。我使用游标中的查询将变量字段添加到临时表中,并尝试使用此循环将字段添加到临时表:
OPEN acc_data_fields;
PREPARE stmt FROM 'ALTER TABLE `test`.`tmp_123` ADD COLUMN `?` VARCHAR(255) AFTER `?`';
add_tagheads: LOOP
FETCH acc_data_fields INTO field_tmp;
IF exit_flag = 1 THEN
LEAVE add_tagheads;
END IF;
EXECUTE stmt USING @field_tmp, @add_after;
SET @add_after = @field_tmp;
END LOOP add_tagheads;
DEALLOCATE PREPARE stmt;
CLOSE acc_data_fields;
存储过程在EXECUTE失败,错误
Sql Error 1210 Incorrect Arguments to EXECUTE
我通过类似的帖子阅读,但无法弄清楚是什么错。 数据库是Mysql 5.1。有什么建议吗? 刚刚发现acc_data_fields由于某种原因是空的(虽然我执行SQL它返回5行。调查......
答案 0 :(得分:0)
尝试:
...
-- PREPARE stmt FROM 'ALTER TABLE `test`.`tmp_123` ADD COLUMN `?` VARCHAR(255) AFTER `?`';
PREPARE stmt FROM 'ALTER TABLE `test`.`tmp_123` ADD COLUMN ? VARCHAR(255) AFTER ?';
...