首页 > 解决方案 > 为什么我不能在 MySQL bench 中使用“source”?

问题描述

我在 mysql 的最开始,试图将数据插入到一个名为 crashcourse 的新模式中。我的代码是:

use crashcourse;
source /Users/chenxinyu/Downloads/mysql_scripts/create.sql ;
source /Users/chenxinyu/Downloads/mysql_scripts/populate.sql ;

但事实证明“11:35:24 source /Users/chenxinyu/Downloads/mysql_scripts/create.sql 错误代码:1064。您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册在第 1 行 0.00031 秒的“source /Users/chenxinyu/Downloads/mysql_scripts/create.sql”附近​​使用正确的语法”,那么我该如何解决这个问题?

标签: mysql

解决方案


有许多命令,包括source,只能被 MySQL 命令行客户端识别。见https://dev.mysql.com/doc/refman/8.0/en/mysql-commands.html

这些命令由该客户端解析和处理,不会发送到 MySQL 服务器。这使得它们与所有其他 SQL 语句不同,后者被发送到服务器进行解析和执行。

其他客户端,例如 MySQL Workbench、phpmyadmin 和其他开发工具,需要自己实现对这些特殊客户端命令的支持。他们中很少有人这样做。

同样,当您编写代码以在自己的应用程序中使用 MySQL API 时,除非您预先检查 SQL 语句并自己处理特殊的仅限客户端的命令,否则它们不受支持。


推荐阅读