SQL中SOURCE命令的正确语法是啥

Posted

技术标签:

【中文标题】SQL中SOURCE命令的正确语法是啥【英文标题】:What is the correct syntax for the SOURCE command in SQLSQL中SOURCE命令的正确语法是什么 【发布时间】:2017-02-13 18:16:58 【问题描述】:

在 codeAnywhere 中,我尝试运行预先编写的脚本文件来创建表。使用 codeAnywhere 时,必须先将文件导入 shell 以获取代码,正如我所做的那样。但是我一直无法使用SOURCE 命令来运行这些文件。我目前尝试过这种语法:

USE exams SOURCE students.txt;

这里的正确语法是什么?我需要在语法中命名数据库吗? 是否有其他命令可以运行包含代码的文本文件?

编辑:我尝试使用这种语法,结果如下:

错误:无法打开文件“exams(question5.txt)”,错误:2

【问题讨论】:

mysql 没有任何名为source 的命令/语句,因此您无法让它在那里工作。您需要将文本数据导入 MySQL 中的表才能从那里使用它。我真的不明白你想通过这个问题达到什么目的。 @Shadow 我正在尝试运行一个包含创建表所需代码的脚本。 正在使用 \.一个选项? @Shadow "MySQL 没有任何名为 source 的命令/语句..." 这来自文档:"如果您已经在运行 mysql,则可以使用 source 命令执行 SQL 脚本文件或 \. 命令:mysql> 源文件名”。它至少从 5.6(2013 年)开始就存在了 @jbobbins 就像你正在混合 mysql 服务器和 mysql 命令行工具的 OP。 【参考方案1】:

将命令放在单独的行中,shell 命令不使用分号,如果这不起作用,那么也可以使用 \ 前缀(我不需要在我的设置中,但它在文档):

USE exams

SOURCE students.txt

https://dev.mysql.com/doc/mysql-shell-excerpt/5.7/en/mysql-shell-commands.html

【讨论】:

【参考方案2】:

在 shell 上,您可以使用以下命令从文本文件执行查询:

mysql db_name < text_file

提示:如果在文本文件中指定了USE 命令(具有正确的数据库名称),则无需指定数据库。 SOURCE 命令在 MySQL 上不可用,您需要 &lt;

您可以在此处找到有关从文本文件执行查询的更多信息: https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html

【讨论】:

以上是关于SQL中SOURCE命令的正确语法是啥的主要内容,如果未能解决你的问题,请参考以下文章

给mysql导入.sql文件,用完source命令后,数据库还是空的,没有表,为啥

mysql用source命令导入.sql

Linux中source命令的使用方式

source /etc/profile 是啥意思?这个命令不写又能怎么样?

source命令

MySQL 导入数据