【问题标题】:Case Sensitivity of MySQLMySQL 区分大小写
【发布时间】:2015-04-03 17:14:17
【问题描述】:

我正在用hibernate 开发一个JSP、Servlet(纯jsp 和servlet)应用程序。

我知道在“大多数”Linux 系统中,MySQL 表名和数据库名区分大小写,而在 Windows 和 Apple 中则相反。我只是以艰难的方式学到了这一点,最终替换了数据库中的表名和我的 java 代码。

但是我只能在 Ubuntu 中进行测试。我确实有混合大小写的“列”名称。例如,“employee”表的某些列是idEmployeeFirstNameLastNameHomeAddressPhoneNumber等。

我知道 ubuntu 不会对表“列”名称的大小写敏感,但是其他 linux 系统呢?是否有任何 linux/unix 操作系统对“列名”区分大小写?

【问题讨论】:

    标签: java mysql linux database ubuntu


    【解决方案1】:

    我认为你不必担心。 documentation 明确表示列别名不区分大小写:

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

    。 . .

    默认情况下,表别名在 Unix 上区分大小写,但在 Unix 上不区分大小写 Windows 或 OS X。

    如果我必须推测为什么区分大小写遵循底层操作系统的默认区分大小写,我猜想在某些情况下(特别是很久以前开发 MySQL 时),表以自己的名称存储在文件中.现在它由lower_case_table_names 系统变量控制,它只是在不同的操作系统上具有不同的默认值。

    【讨论】:

    • 感谢您的回复。因此,为了简短地解释一下,我不必担心这一点,因为表“列”名称在任何平台上都不区分大小写。不是吗?
    • @JustCause 。 . .您不必担心列名是否区分大小写。
    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 2011-04-13
    • 2013-09-15
    • 2013-03-19
    • 2013-09-26
    • 1970-01-01
    • 2019-06-19
    • 2013-02-17
    相关资源
    最近更新 更多