Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在SQL脚本中包含变量和表达式(对于MySQL)?(最初错误地发布到ServerFault)_Mysql_Scripting - Fatal编程技术网

是否可以在SQL脚本中包含变量和表达式(对于MySQL)?(最初错误地发布到ServerFault)

是否可以在SQL脚本中包含变量和表达式(对于MySQL)?(最初错误地发布到ServerFault),mysql,scripting,Mysql,Scripting,我有一个SQL脚本,它在MySQL数据库中创建三个新表,并在这些新表中安装字段 此数据库中的几个表包含包含用户数据的表上的元数据,我的脚本向这些元数据表添加记录,以使新表和字段对应用程序可见。例如,对于表“foo”,必须将一条记录添加到“objects”表中,对于“foo”中的每个字段,必须将一条记录添加到“fields”表中,告知应用程序需要了解的字段信息。如果“对象”表中给“foo”一个51的ID,那么“字段”表中“foo”字段的所有记录都必须将其列为对象51 (这实际上是一个简化版本;实际

我有一个SQL脚本,它在MySQL数据库中创建三个新表,并在这些新表中安装字段

此数据库中的几个表包含包含用户数据的表上的元数据,我的脚本向这些元数据表添加记录,以使新表和字段对应用程序可见。例如,对于表“foo”,必须将一条记录添加到“objects”表中,对于“foo”中的每个字段,必须将一条记录添加到“fields”表中,告知应用程序需要了解的字段信息。如果“对象”表中给“foo”一个51的ID,那么“字段”表中“foo”字段的所有记录都必须将其列为对象51

(这实际上是一个简化版本;实际情况更为复杂。)

目前,我的脚本覆盖了“objects”和“fields”的ID字段的自动递增,并在这些记录的INSERT语句中使用硬编码的ID,将它们放入一个不可能与任何现有记录发生冲突的范围内

但是如果我们需要使用不同的范围,那么我们需要对所有这些硬编码的ID进行搜索和替换


有没有一种方法可以取代硬编码的ID,使我们可以轻松地将范围放在任何需要的地方?

我想这会对您有所帮助

“MySQL中主要有三种类型的变量:

  • 用户定义变量(前缀为@)
  • 局部变量(无前缀)
  • 服务器系统变量(前缀为@@)”

  • 这对你有帮助吗?是的,这对我帮助很大!把你的评论变成一个答案,我会把它标记为正确的。当我看到它的措辞是一个答案时,就把它标记为正确的。