Mysql库名中包含-等特殊符号报错:ERROR 1064 (42000): You have an error in your SQL syntax

本文详细解析了在创建MySQL数据库时遇到的特殊字符(如“-”)作为库名导致的语法错误,并提供了正确的创建方法及后续操作注意事项。

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

--问题描述
在创建mysql数据库的时候出现报错:
mysql> CREATE DATABASE IF NOT EXISTS test-db1 default charset utf8 COLLATE utf8_general_ci;
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 '-db1 default charset utf8 COLLATE utf8_general_ci' at line 1

--问题分析
从报错可以看出,是语法拼写问题,检查了几遍发现确实没有问题

猜测可能是数据库名称中 -  字符的问题

--原因
mysql数据库直接创建是不能创建带特殊字符的库名的

--问题解决
需要使用 ` 符号进行转义处理,这个符号是esc下面的那个键,不是单引号

mysql> CREATE DATABASE IF NOT EXISTS `test-db1` default charset utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.03 sec)

--延伸,同理在授权以及其他处理该库的时候也要加上对应符号`

grant ALL PRIVILEGES on `test-db1`.*  to test@'%';
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值