一、遇到的问题
本地sql配置不区分大小写,线上sql配置区分大小写;
select * from RESUME;
输入RESUME时是SQLyog工具自动填充,自动填充为大写(SQLyog中自动输入时,一直是大写,无法变成小写,具体原因不明,可能和关键字有关),表名其实为resume,导致在本地运行时正常,线上运行时因为大小写的原因,运行失败;
二、解决
解决方式:
书写sql语句时,表名和字段名称大小写要和表结构保持一致,否则会报错;
出现的问题其实是sql书写不规范导致,书写sql时表名和字段名需要在``符号,在``中写表名和字段值便不会自动填充为大小写,而且可以通过点击表名自动填充为`resume`的格式,字段名可以通过表名.字段名自动填充为`name`的格式
select * from `resume` where `name`='jing'; //正确书写
select * from resume where name='jing'; //不规范书写,一般不会报错,涉及到大小写时会报错哦
三、延伸
mysql表名区别大小写设置
- 关闭MySQL服务
- 在服务运行目录找到my.ini或者my.cnf文件
-
打开文件,找到[mysqld]在下面增加一行
lower_case_table_names=0 (0:大小写敏感;1:大小写不敏感)
-
重启MySQL服务