关于各种数据库中表名的大小写

关于数据库表名的大小写

刚刚同事问了我一个HighGoDB 连接 Oracle的问题。大概是在HighGoDB连接Oracle时用的是小写的table名称,导致在Oracle找不到该表。

我引申写一下,各种database table名称大小写的处理:

Oracle :create table abc (***)成功之后,oracle 数据字典中存放的是ABC。即:除非特别声明,oracle 数据字典中存放的是转为大写后的表名。

Sybase ASE:默认就是区分大小写。所以user.lei 和user.LEI 是同一个user下的两个不同的表。

MSSQLserver: 在安装SQLServer时,可以选择排序规则,排序规则决定Table的大小写。

PostgreSQL:除非特别声明,PostgreSQL 数据字典中存放的是转为小写后的表名。

DB2:不了解。

时间: 2024-08-02 14:38:30

关于各种数据库中表名的大小写的相关文章

MYSQL库中表名忽略大小写设置的影响

前不久,对mysql的lower_case_table_names参数有点小小的疑问: 1.lower_case_table_names是表名忽略大小写还是所有对象(字段.索引等)都忽略大小写? 2.区分大小写环境里的表(含大写.小写)迁移到不区分大小写环境里面会怎么样? 3.不区分大小写环境里的表(含用大写.小写表名语句建的表)迁移到区分大小写环境里面又会怎样 4.lower_case_table _names设置为什么值较好? 于是做了针对这些问题做了个小小的实验,先附实验结论. 实验结论:

--查询数据库中表名 字段 数据类型 长度

SELECT a.name AS TableName, b.name AS ColName, c.name AS ValType, b.length AS ValLength FROM sysobjects a INNER JOIN syscolumns b ON a.id = b.id INNER JOIN systypes c ON c.xtype = b.xtype WHERE a.xtype = 'U' AND c.name != 'sysname' --查询数据库中 表名 字段 数据类

Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题

这几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执行sql时,总会提示表不存在. 寻找之后发现, 建表时,表统一采用了大写.hibernate会把大写统一转换成小写.且 mysql在 linux下 大小写敏感. 解决: 1. 尝试修改mysql的cnf文件,改成不区分大小写.修改完成之后发现问题并没有解决,还产生了新的问题,表名无论大小写都失败了. 2. 数据库层面修改没有效果, 表结构和表名不能修改,那只能通过代码实现来解决此问题了. 先感谢  三个博

mysql表名忽略大小写

查看大小写区分mysql> show variables like "%case%";+------------------------+-------+| Variable_name          | Value |+------------------------+-------+| lower_case_file_system | OFF   | | lower_case_table_names | 0     | +------------------------+-

【MySql】linux下,设置mysql表名忽略大小写

[障碍再现] 状况描述01: 在LINUX下调一个程序经常报出找不到表,但是我明明是建了表的, 测试的时候,遇到一些问题,从Windows平台访问虚拟机中的Web应用,经常报出找不到表,但自己明明在数据库中看到相关的数据表和数据,在linux中通过MYSQL的命令行下也可以查到,为什么从Windows平台上的程序来访问虚拟机中的MySql时,就找不到呢? [原因分析] 原来是LINUX下的MYSQL默认是要区分表名大小写的,而在windows下是不区分. 从windows下导出的数据脚本中数据表

Mybatis——实体类属性名和数据库字段名不同时的解决办法

在使用Mybatis来持久化数据库时,有时候会碰到数据库中表中的字段与java实体类中属性名不一致的情况,在这种情况下Mybatis是不能完成字段的自动映射的.而通常情况下,数据库及实体类是不应该被改的的.所以要在不改变数据库以及实体类的情况下解决这个问题,下面是解决该问题的三种方式: java实体类: public class User { private Long id; private String userName; private String passWord; /** * ...

mysql linux下表名忽略大小写注意事项

在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2.这样了可以保留数据库名和表名的大小写.不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名.如果将查询转移到Unix中,由于在Unix中大小写很重要,如果大小写不正确,它们不工作.例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写.请注意在Unix中将lower_

Android 数据存储——SQLite实例、判断数据库中表是否存在

本文主要记录一下Android SQLiteDatabase中如何判断数据库中表是否存在,以及测试SQLiteDatabase数据库的基本操作.有关SQLite的详细说明,可以查看转载的Android 数据存储--SQLite使用详解 例子: AndroidManifest.xml--没有做任何修改,创建工程默认 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="

Linux系统下不让MySQL区分表名的大小写的解决办法

问题描述: 今天将某项目数据库移植到liunix服务器上,结果出现无法找到表的错误,查询数据库,表确实是存在的.经过分析比较,发现是表名大小写问题导致. 问题分析: MySQL数据库的表名在Linux系统下是严格区分大小写的,在Windows系统下开发的程序移植到Linux系统下,如果程序中SQL语句没有严格按照大小写访问数据库表,就可能会出现找不到表的错误. 解决办法: 修改MySQL的配置文件my.cnf,在[mysqld]部分添加如下配置选项lower_case_table_names =