包含UPPERCASES的表和视图名称将以全小写形式返回

时间:2016-03-16 14:00:47

标签: mysql sql

我的数据库对象的名称标准化为pascal大小写名称,因此:

CREATE TABLE Users
(
    UserId INT UNSIGNED NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (UserId)
);

突然(几天),由以下命令创建的任何表都会生成一个表,其名称中没有任何个案。

CREATE TABLE _Users LIKE Users;
CREATE TABLE `_Users` LIKE `Users`;

lower_case_table_names是默认设置(对于mac),所以这让我发疯,完全没有任何意义。这是怎么回事?

1 个答案:

答案 0 :(得分:1)

这只是使用Pascal套管的业力......;)

很久以前,MySQL中出现了一个导致此行为的错误。我原以为它现在已经修好了,但也许没有。

此处解释了此错误,最新更新发布于2014年:http://bugs.mysql.com/bug.php?id=20356

由于OP,解决方案是:

CREATE TABLE __Users LIKE Users;

然后:

RENAME TABLE __Users TO _Users;