gpt4 book ai didi

mysql - 我们所有的 MySQL 约束都变成了小写。什么会导致这种情况?

转载 作者:IT老高 更新时间:2023-10-29 00:04:23 26 4
gpt4 key购买 nike

从数据库表到对象属性、列、数据库索引和约束,我们所做的一切都有驼峰式命名约定。

我们已经在一个新项目上使用这些约定两个月了,一切进展顺利,昨晚突然之间,我们 6 个数据库中只有一个的所有关系从驼峰式转换为小写。重要的是要注意只有约束被转换——索引本身保持驼峰式。

因此,如果我们有一个名为 someColumn 的列和另一个名为 someTable.otherColumn 的列,它是这样的:

someColumn => someTable.otherColumn ON DELETE CASCADE ON UPDATE CASCADE

为此:

someColumn => sometable.otherColumn ON DELETE CASCADE ON UPDATE CASCADE

什么会导致这种情况?我们无法重现此问题 - 我们尝试更改随机约束以查看它是否会改变所有约束,然后我们尝试重新导入结构并且它运行良好,从导入中保留驼峰命名法。

我们在 OSX 上工作并部署到 CentOS。

编辑:一位开发人员使用不区分大小写的 OSX。他尝试从他自己机器上的导出重新导入数据库,它仍然没问题,因此:将转储从不区分大小写的机器导入到区分大小写的 CentOS 中没有破坏事情。重新启动 mysqld 也未能重现此错误。所有强制小写的 mysql 设置均已关闭。迄今为止,我们无法让它再次发生。

Edit2:请注意,这只发生在我们的 CentOS 开发服务器上 - 使用不区分大小写操作系统的开发人员之前已经从其他使用区分大小写系统的人那里导入了他的数据库,并且每次都一切正常。

最佳答案

Bug report #55897表明这是设计使然并记录在 Limits on InnoDB Tables 下:

On Windows, InnoDB always stores database and table names internally in lowercase.

另见 Case insensitive constraint names in MySQL .

关于mysql - 我们所有的 MySQL 约束都变成了小写。什么会导致这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12437059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com