MySQL : case sensitive field name while creating table

标签 mysql database-migration

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

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

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

Error 1060: Duplicate column name 'A' SQL Statement: CREATE TABLE ...

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

有什么建议吗?另外,如果您有任何关于从 NoSQL 数据库迁移到 SQL 的技巧,请随时分享!

最佳答案

The manual says ,

Column, index, stored routine, and event names are not case sensitive on any platform, nor are column aliases.

因此,取决于列名称中区分大小写的端口将无法正常工作。

它还有很多关于数据库和表名称的大小写敏感性的内容。这在很大程度上取决于数据库服务器的主机操作系统。

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

关于MySQL : case sensitive field name while creating table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49258580/

相关文章:

php - 哪些 php 框架支持数据库迁移?

django - 我们是否应该在生产服务器上重复使用开发服务器创建的迁移脚本?

ruby-on-rails - 运行 Rails 迁移时 "0 rows"是什么意思?

python - 数据库从Sybase迁移到MySQL : "error calling Python module function DbSQLAnywhereRE.reverseEngineer"

php - 我可以使用 PDO::FETCH_GROUP 按两个值对结果进行分组吗

mysql - Node js数组值访问问题

python - 在 python 中使用 MySQLdb 插入 mysql 后,如何安全有效地获取行 ID?

mysql - 将 Oracle PL/SQL 转换为 Mysql

mysql - SQL 表字段中模式出现的表

asp.net-mvc-4 - MVC 4 - 无法使用 NuGet 包管理器控制台创建数据库