mysql:解决数据库名字的格式——不能用横杠-

在使用Navicat创建包含特殊字符如减号(-)的数据库时,可以正常运行,但在MySQL控制台直接执行相同操作会报错。错误提示为SQL语法错误。解决方案是在创建数据库的SQL语句中对数据库名使用反引号包裹,例如`xxx-yyy`。尽管如此,建议避免在数据库命名中使用可能引起混淆的特殊字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Navicat创建数据库,数据库名可带-(减号),在mysql控制台下则会报错

mysql> create database xxx-yyy;
ERROR 1064 (42000): 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 '-yyy'
at line 1

解决方法:对数据库名加`号(1旁边那个)

create database `xxx-yyy`;

不过命名数据库大家还是尽量不要用这种有争议的字符。

### MySQL 数据库名称命名规则 在MySQL中,数据库名称遵循一定的命名规则和建议。对于是否可以在数据库名称中使用横杠(`-`),存在一些具体的要求。 #### 避免保留字 当设计数据库名称时,应避免使用MySQL中的保留字或关键字。这些词汇在MySQL语言中有特定含义,可能导致冲突或语法错误[^1]。 #### 横杠使用的限制 直接在SQL语句中使用横杠数据库名称会导致语法错误。例如,在命令行工具中执行如下操作会出现问题: ```sql CREATE DATABASE xxx-yyy; ``` 这会产生类似于以下的错误提示: ``` ERROR 1064 (42000): 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 '-yyy' at line 1 ``` 为了使含有横杠名字被正确识别,可以通过反引号(\`)将其括起来: ```sql CREATE DATABASE `xxx-yyy`; ``` 尽管如此,仍然推荐尽量不采用可能引起混淆的字符来命名数据库[^2]。 #### 前缀的应用 在同一应用程序下的多个数据表之间通常会应用统一的前缀策略。比如论坛系统的表格可以使用`cdb_`作为前缀,而博客系统则可以用`supe_`这样的方式区分不同模块的数据结构。不过需要注意的是,这里提到的是针对表而非整个数据库级别的命名习惯[^4]。 综上所述,虽然技术上允许通过特殊处理手段让包含横杠在内的非标准字符成为合法有效的数据库名的一部分,但从维护性和兼容性的角度出发,最好还是选择更加简洁明了且不含潜在风险的命名方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值