当前位置: 首页 > article >正文

MySQL 创建数据库问题:You have an error in your SQL syntax(MySQL 数据库命名规则问题)

问题描述与处理策略

1、问题描述
CREATE DATABASE my-shop-db;
  • 执行上述 SQL 语句,报如下错误
CREATE DATABASE my-shop-db
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-shop-db' at line 1

# 翻译
CREATE DATABASE my-shop-db
SQL 语句语法有错误
请查看与 MySQL 服务版本对应的手册,以获取在第 1 行使用的正确语法
2、问题原因
  1. 在 MySQL 中创建一个名为 my-shop-db 的数据库失败,因为 my-shop-db 中包含了不被允许的字符(此案例中为破折号 -

  2. MySQL 的数据库名称有一些限制,通常只允许字母、数字、下划线(_),并且不能以数字开头

3、处理策略
  • my-shop-db 中的破折号 - 修改为下划线(_
CREATE DATABASE my_shop_db;

补充学习

MySQL 数据库命名规则
(1)基本介绍
  1. 数据库名称只能包含字母 a ~ z、A ~ Z、数字 0 ~ 9 和下划线 _

  2. 特殊字符(例如,空格、破折号 -@、井号 # 等)是不被允许的

  3. 在大多数操作系统上(例如,类 Unix 系统),MySQL 的数据库名称是区分大小写的,但在 Windows 上,MySQL 的数据库名称默认不区分大小写,因为 Windows 文件系统通常不区分大小写

  4. 避免使用 MySQL 的保留字作为数据库名称

  5. 每个数据库名称在 MySQL 中必须是唯一的

(2)演示(反例)
  1. 避免使用特殊字符
CREATE DATABASE my@shop@db;
# 结果

CREATE DATABASE my@shop@db
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@shop@db' at line 1
  1. 注意区分大小写(此案例环境为 Windows 系统,在数据库 my_shop_db 存在的情况下创建数据库 my_shop_DB
CREATE DATABASE my_shop_DB;
# 结果

CREATE DATABASE my_shop_DB
> 1007 - Can't create database 'my_shop_db'; database exists
  1. 避免使用保留字
CREATE DATABASE select;
# 结果

CREATE DATABASE select
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select' at line 1
  1. 注意唯一性在数据库 my_shop_db 存在的情况下创建数据库 my_shop_db
CREATE DATABASE my_shop_db;
# 结果

CREATE DATABASE my_shop_db
> 1007 - Can't create database 'my_shop_db'; database exists

http://www.kler.cn/a/510661.html

相关文章:

  • 嵌入式知识点总结 C/C++ 专题提升(一)-关键字
  • ScratchLLMStepByStep:训练自己的Tokenizer
  • 【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择
  • MySQL、HBase、ES的特点和区别
  • LabVIEW串口通信调试与数据接收问题
  • 【数据库初阶】MySQL中表的约束(上)
  • 闭包的理解及应用
  • # Rust Actix Web 入门指南
  • Avalonia系列文章之小试牛刀
  • 栈和队列经典例题
  • Git版本控制 – 创建和维护项目Repository
  • 数据结构漫游记:队列的动态模拟实现(C语言)
  • Python基础06(字符串格式化/操作方法)
  • Node.js 到底是什么
  • 微服务学习-OpenFeign 简化服务间调用
  • 【第二十周】U-Net:用于生物图像分割的卷积神经网络
  • ARM GCC编译器
  • LeRobot安装教程
  • [实现Rpc] 环境搭建 | JsonCpp | Mudou库 | callBack()
  • VUE学习笔记(入门)17__小黑记事本综合案例
  • Oracle 深入学习 Part12: Managing Indexes (管理索引)
  • A Dual-Module Denoising Approach 解读
  • ES6是什么
  • Agentic AI 和 AI Agent 之间的区别(ChatGPT回答)
  • 【2024年华为OD机试】(B卷,100分)- 计算最接近的数 (Java JS PythonC/C++)
  • 【专题二 二叉树中的深搜】230. 二叉搜索树中第K小的元素