mysql - 为什么我不能在 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”附近使用正确的语法”,那么我该如何解决这个问题?
解决方案
有许多命令,包括source
,只能被 MySQL 命令行客户端识别。见https://dev.mysql.com/doc/refman/8.0/en/mysql-commands.html
这些命令由该客户端解析和处理,不会发送到 MySQL 服务器。这使得它们与所有其他 SQL 语句不同,后者被发送到服务器进行解析和执行。
其他客户端,例如 MySQL Workbench、phpmyadmin 和其他开发工具,需要自己实现对这些特殊客户端命令的支持。他们中很少有人这样做。
同样,当您编写代码以在自己的应用程序中使用 MySQL API 时,除非您预先检查 SQL 语句并自己处理特殊的仅限客户端的命令,否则它们不受支持。
推荐阅读
- postgresql - PostgreSQL 在同一列上找到常见的对组合
- laravel - Laravel 8:如何使用 Markdown 发送带附件的电子邮件
- r - 在 R 中使用 rvest 进行抓取时的重复
- http - 为什么 RFC 7617 auth 基本标准在转换为 base64 之前要加上磅?
- javascript - 即使提到了我朋友的 id,您也无权使用此命令需要帮助
- swift - 在 SwiftUI 中仅显示图像的顶部
- ios - 如何处理自动续订重新订阅?
- xquery - 在 Xquery 中对使用简单映射运算符返回的元素进行排序
- python - PyQt5:线程没有结束?进程以退出代码 -1 结束
- visual-studio-code - 创建猫鼬模式时VS代码自动竞争无法正常工作