首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当exec with raw sql使用go-gorm时,为什么linux中的表名自动变为大写

当exec with raw sql使用go-gorm时,为什么linux中的表名自动变为大写
EN

Stack Overflow用户
提问于 2021-06-03 17:37:30
回答 1查看 39关注 0票数 0

为什么在linux中,当exec with raw sql使用go-gorm时,表名会自动变为大写,而在windows中却能正常工作。

环境: mysql8.0,centos7.6,go1.16,github.com/jinzhu/gorm1.9

代码语言:javascript
运行
复制
db.Debug().Exec("insert into t_if_user

错误日志:

代码语言:javascript
运行
复制
Error 1146: Table 'gridtradingdb.T_IF_USER' doesn't exist 

我该如何解决这个问题。感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-06-04 16:53:20

来自reference

表和数据库名称在磁盘上的存储方式以及在MySQL中的使用方式受lower_case_table_names系统变量的影响。lower_case_table_names可以采用下表中所示的值。此变量不影响触发器标识符的区分大小写。在Unix上,lower_case_table_names的默认值是0。在Windows上,的默认值是1。在macOS上,默认值是2。

值0:

表和数据库名称使用CREATE Table或CREATE database语句中指定的字母存储在磁盘上。名称比较是区分大小写的。如果在文件名不区分大小写的系统(如Windows或macOS)上运行MySQL,则不应将此变量设置为0。如果在不区分大小写的文件系统上使用--lower-case-table-names=0强制此变量为0,并使用不同的字母来访问MyISAM表名称,则可能会导致索引损坏。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67819022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档