如何使用MySQL在变量中声明表名?

时间:2013-09-24 03:04:11

标签: mysql stored-procedures

目标

声明一个“global”变量,该变量包含存储过程的范围内的表名。

场景

我正在设计一个带有IF语句的简单存储过程,我需要在代码的许多地方使用表的名称。

问题

我真的不知道该怎么做( a.k.a。“我不知道语法”)。

我已经做了什么

在一些测试中,我尝试了以下代码:

[...]

BEGIN
DECLARE TableName = "Users";

    [...]

    INSERT INTO TableName ([...]) VALUES ([...]);

    [...]
END

但我在INSERT INTO [...]行附近收到(1064)SQL语法错误

那么,有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

1,DECLARE var_name [, var_name] ... type [DEFAULT value]

[...]

BEGIN
modify //DECLARE TableName = "Users";
DECLARE TableName CHAR(20) DEFAULT 'Users';

    [...]

    INSERT INTO TableName ([...]) VALUES ([...]);

    [...]
END

2,关于声明变量的更多内容请参考mysql

http://dev.mysql.com/doc/refman/5.5/en/declare-local-variable.html