我正在尝试创建一个存储过程来首先创建一个表,如果该表尚不存在。该部分功能如预期:
BEGIN
SET @sql = CONCAT('CREATE TABLE IF NOT EXISTS ',`@variable_table`,' LIKE table_template;');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
创建表后,或者如果表已经存在,我希望存储的程序在其中转储一组数据。
SET @sql = CONCAT('INSERT INTO ',`@variable_table`,' (
`col1`,`col2`,`col3`,`col4`,`col5`)
VALUES (
`@D1`,`@D2`,`@D3`,`@D4`,`@D5`);');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
如果我用现存的表名交换',@variable_table
',代码将按预期工作。是否可以在此处使用变量运行代码,在这种情况下,我该怎么办?