【问题标题】:MySQL : case sensitive field name while creating tableMySQL:创建表时区分大小写的字段名称
【发布时间】:2018-03-13 23:03:18
【问题描述】:

我今天的问题非常简单且不言自明:有没有办法让表格字段区分大小写?我正在尝试创建一个表,其中所有字母都小写和大写作为它们的名称,而数据本身是数字或布尔值。

 ________________________
| Column Name | Datatype |
|¯¯¯¯¯¯¯¯¯¯¯¯¯|¯¯¯¯¯¯¯¯¯¯|
|      a      |    INT   |
|      b      |  TinyINT |
|      c      |    INT   |
|      d      |    INT   |
|     ...     |    ...   |
|      A      |    INT   |
|      B      |  TinyINT |
|      C      |    INT   |
|      D      |  TinyINT |
|     ...     |    INT   |
 ´´´´´´´´´´´´´´´´´´´´´´´´

我遇到的主要问题是这个错误

错误 1060:重复的列名 'A' SQL 语句:CREATE TABLE ...

我已经搜索了一个解决方案,但我发现要么是 BINARY 方法,但它仅适用于字符或只是将我的大写字段重命名为其他内容。这是从 CouchDB 数据库到 MySQL 的数据迁移的一部分,因此字段名称对于使整个程序正常运行非常重要。

有什么建议吗?此外,如果您对从 NoSQL 数据库迁移到 SQL 有任何提示,请随时分享!

【问题讨论】:

    标签: mysql database-migration


    【解决方案1】:

    The manual says,

    列、索引、存储例程和事件名称在任何平台上都不区分大小写,列别名也不区分。

    因此,根据列名区分大小写的端口将无法正常工作。

    关于数据库和表名的区分大小写也有很多话要说。这取决于数据库服务器的主机操作系统的复杂方式。

    在我看来@Strawberry 是对的。如果您根据区分大小写的标识符构建数据库,您就是在自找麻烦。

    【讨论】:

    • 知道了!感谢您提供准确而全面的答案,太糟糕了,现在我必须重新访问和重构我所有的数据库功能:-/
    猜你喜欢
    • 2014-02-17
    • 2016-11-12
    • 1970-01-01
    • 2017-04-15
    • 2016-11-24
    • 2011-09-02
    • 2010-10-28
    相关资源
    最近更新 更多