是否可以在 SQL 脚本中使用变量和表达式(对于 MySQL)? (最初错误地发布到 ServerFault)
Is it possible to have variables and expressions in an SQL script (for MySQL)? (originally mis-posted to ServerFault)
我有一个 SQL 脚本,它在 MySQL 数据库中创建三个新的 table,并在这些新的 table 中安装字段。
此数据库中的几个 table 包含 table 上包含用户数据的元数据,我的脚本将记录添加到这些元数据 table 中, 使新的 tables 和字段对应用程序可见。例如,对于 table“foo”,必须将记录添加到“对象”table,对于“foo”中的每个字段,必须将记录添加到“字段” table,告诉应用程序它需要了解的关于该字段的信息。如果“foo”在“对象”table 中的 ID 为 51,则“字段”table 中“foo”字段的所有记录都必须将其列为对象 51 .
(这其实是一个简化版,真实的更复杂。)
目前,我的脚本覆盖了“对象”和“字段”的 ID 字段的自动递增,并在这些记录的 INSERT 语句中使用了硬编码 ID,将它们放入不太可能的范围内与任何现有记录冲突。
但是如果我们需要使用不同的范围,那么我们需要对所有这些硬编码 ID 进行搜索和替换。
有没有一种方法可以将硬编码 ID 替换为允许我们轻松将范围放在需要去的任何地方的东西?
我想这对你有帮助
How to declare a variable in MySQL?
》MySQL中主要有三类变量:
- User-defined 个变量(以@为前缀)
- 局部变量(无前缀)
- 服务器系统变量(以@@为前缀)
我有一个 SQL 脚本,它在 MySQL 数据库中创建三个新的 table,并在这些新的 table 中安装字段。
此数据库中的几个 table 包含 table 上包含用户数据的元数据,我的脚本将记录添加到这些元数据 table 中, 使新的 tables 和字段对应用程序可见。例如,对于 table“foo”,必须将记录添加到“对象”table,对于“foo”中的每个字段,必须将记录添加到“字段” table,告诉应用程序它需要了解的关于该字段的信息。如果“foo”在“对象”table 中的 ID 为 51,则“字段”table 中“foo”字段的所有记录都必须将其列为对象 51 .
(这其实是一个简化版,真实的更复杂。)
目前,我的脚本覆盖了“对象”和“字段”的 ID 字段的自动递增,并在这些记录的 INSERT 语句中使用了硬编码 ID,将它们放入不太可能的范围内与任何现有记录冲突。
但是如果我们需要使用不同的范围,那么我们需要对所有这些硬编码 ID 进行搜索和替换。
有没有一种方法可以将硬编码 ID 替换为允许我们轻松将范围放在需要去的任何地方的东西?
我想这对你有帮助
How to declare a variable in MySQL?
》MySQL中主要有三类变量:
- User-defined 个变量(以@为前缀)
- 局部变量(无前缀)
- 服务器系统变量(以@@为前缀)