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

标签 mysql stored-procedures

目标

声明一个“全局”变量,用于存储存储过程范围内的表名称。

场景

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

问题

我真的不知道该怎么做(又名“我不知道语法”)。

我已经做了什么

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

[...]

BEGIN
DECLARE TableName = "Users";

    [...]

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

    [...]
END

但是我在 INSERT INTO [...] 行周围收到了(1064) SQL 语法错误

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

最佳答案

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

关于mysql - 如何使用 MySQL 在变量中声明表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972292/

相关文章:

sql-server - t-sql存储过程创建脚本

sql-server - SQL Server - varchar 值的转换溢出了 int 列

php - 如何在 Laravel 5.2 中设置至少需要填写两个字段

mysql - 将Mysql查询 "show status"保存到txt文件中

mysql - Mariadb 中止连接错误,没有用户名

php - 是否可以通过知道 PHP 中的用户名和密码(仅)来破解我的数据库

mysql - 未使用 HQL 映射的两个表上的内联接

database - oracle存储过程中的错误绑定(bind)变量

php - 准备好的语句与存储过程

c# - 非常慢的 T-SQL 存储过程通过删除和重新创建加速