PostgreSQL 是不是大小写敏感

如果你踩过 MySQL 的大坑的话就知道:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。

如果你稍加不注意就会出现在本机开发的程序运行一切正常,发布到服务器行就出现表名找不到的问题。

这是我们前一个项目遇到的巨大问题,开发是在 Windows 下进行,但是部署是在 Linux 下进行。

例如一个表:tableName 和 tablename,这 2 个表在 Windows 下是一样的,但在 Linux 下就不一样了。

所以我们的程序在 Windows 下查询表 tableName 没有问题,但是如果 Linux 下数据库的表名为 tableName 的话,那么查询就找不到表了。

有过上面经历的话,我们来看看 PostgreSQL

PostgreSQL 是大小写敏感的

在默认情况,PostgreSQL 在存储和比较数据值的时候字符串的值如果是大小写的处理方式是不一样的。

例如: “isharkfly” 和 “iSharkFly” 是不同的值,这个在 PostgreSQL 会影响存储的。

创建表的 SQL

如果我们有一个创建表的 SQL:

create table test.Table_name
(
    id        integer,
    user_name varchar
);

create table test.table_name
(
    id        integer,
    user_name varchar
);

注意到,上面的 T 是大写的,如果运行上面的 SQL,在数据库上,我们会看到表的名字被转换成小写了。

2024-01-19_22-35-42

如果我们想在数据库中创建一个 Table_name 可以吗?

答案是可以的。

需要把 Table_name 放在双引号里面。

运行的 SQL 就成这样了。

create table test."Table_name"
(
    id        integer,
    user_name varchar
);

2024-01-19_22-37-31

结论

为了避免我们在 MySQL 上遇到的大小写问题和平台问题。

在设计数据库表的时候,不要使用大小写混合模式,要么就全部约定为小写,要不就全部约定为大写。

因为 PostgreSQL 会默认全部使用小写,所以在 PostgreSQL 的表面和字段名要全部为小写为好。

Oracle 数据库在这里是另类,在 Oracle 中全部按照大写存储的。

PostgreSQL 是不是大小写敏感 - 数据库 - iSharkFly如果你踩过 MySQL 的大坑的话就知道:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。 如果你稍加不注意就会出现在本机开发的程序运行一切正常,发布到服务器行就出现表名找不到的问题。 这是我们前一个项目遇到的巨大问题,开发是在 Windows 下进行,但是部署是在 Linux 下进行。 例如一个表:tableName 和 tablename,这 2 个表在 Windows 下是一样的,但在 …icon-default.png?t=N7T8https://www.isharkfly.com/t/postgresql/15350

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/336475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【力扣4行代码解题】572另一棵树的子树 | C++

总结:本题可以使用递归和迭代法,但平时还是建议两种方法都掌握,感兴趣的同学可以看看原题。 文章目录 1 题目2 知识点3 代码及解释 1 题目 力扣链接 > 572.另一棵树的子树 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 sub…

探索图像检索:从理论到实战的应用

目录 一、引言二、图像检索技术概述图像检索的基本概念图像检索与文本检索的区别特征提取技术相似度计算索引技术 三、图像检索技术代码示例图像特征提取示例相似度计算索引技术 四、图像搜索流程架构数据采集与预处理特征提取相似度计算与排名结果呈现与优化 五、实际应用图像…

基于Java+SSM志愿者服务管理系统详细设计和实现【附源码】

基于JavaSSM志愿者服务管理系统详细设计和实现【附源码】 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系…

线上SQL超时场景分析-MySQL超时之间隙锁

前言 之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下。 背景说明 分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案 消息表名:mq_messages 数据量:3000多…

[java基础揉碎]基本数据类型转换

介绍 当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型, 这个就是自动类型转换。 数据类型按精度(容量)大小排序为: 自动类型转换注意和细节 1.有多种类型的数据混合运算时,系统首先自动…

【Linux的权限命令详解】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 shell命令以及运行原理 Linux权限的概念 Linux权限管理 一、什么是权限? 二、权限的本质 三、Linux中的用户 四、linux中文件的权限 4.1、文件访问…

【成本价特惠】招募证书代理:工信部、PMP、阿里云、华为等认证,机会难得!

扫码和我联系 亲爱的读者朋友们, 今天,我想和大家分享一个难得的机会。我们目前正在积极招募各类证书的代理,包括工信部的证书、PMP(项目管理专业人士)证书、阿里云证书、华为证书、OCP 证书、CFA 证书等。这些证书在…

C++入门学习(七)整型

整型就是整数类型的数据(-1,0,1等等) 数据类型占用空间取值范围short(短整型)2字节 (-2^15 ~ 2^15-1) 32768~32767 int(整型)4字节(-2^31 ~ 2^31-1)long(长整形) Windows为4字节, Linux为4字节(32位), 8字节(64位) (-2^31 ~ 2^31…

LiteAD对接FusionCompute

2、FA发放云桌面并与FC对接 (1)创建虚拟机模板 (2)创建虚拟机命名规则 (3)创建虚拟机组 (4)创建桌面组 (5)创建域用户和组(就相当于在Microsoft …

基于SpringBoot Vue家政服务预约平台系统

大家好✌!我是Dwzun。很高兴你能来阅读我,我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结,还为大家分享优质的实战项目,本人在Java项目开发领域有多年的经验,陆续会更新更多优质的Java实战项目&#x…

【linux驱动】详细剖析第一个hello word驱动程序

文章目录 驱动程序的框架驱动程序的使用示例 驱动程序的框架 Linux 驱动的基本框架主要由模块加载函数,模块卸载函数,模块许可证声明,模块参数,模块导出符号,模块作者信息等几部分组成,其中模块参数&#…

C++——vector的使用及其模拟实现

vector的使用及其模拟实现 文章目录 vector的使用及其模拟实现1. vector的使用1.1 构造函数construct1.2 获取当前存储的数据个数size()和最大容量capacity()1.3 访问1.3.1 operator[]运算符重载1.3.2 迭代器访问1.3.3 范围for 1.4 容量相关reserve()和resize()1.5 增&#xff…

【趣味题-04】20240120百鸡百钱(遍历循环排除,类似加减法)

背景需求 题目 5:百鸡百钱 作者:阿夏 时间:2024年1月20日百鸡百钱 公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元, 现要求用 100 元钱买 100 只鸡(三种类型的鸡都要买), 问公鸡、母鸡、小鸡各买几…

Oracle 经典练习题 50 题

文章目录 一 CreateTable二 练习题1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4 查询平均成绩小于…

“加密行业迈向上市潮”!全球第二大稳定币发行商,秘密提交IPO申请!

在过去的15年里,虽然加密行业蓬勃发展,但上市公司的数量却相对稀少。然而,随着加密市场在经济走强的背景下出现反弹,今年区块链领域的投资资金和潜在的IPO似乎均有望迎来转机。 高盛预测,2024年下半年IPO活动将更加活跃…

Red Hat Enterprise Linux 8.9 安装图解

引导和开始安装 选择倒计时结束前,通过键盘上下键选择下图框选项,启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致,引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的,如图所示。若手动调…

设计一个Key-Value缓存去存储最近的Web Server查询的结果

1: 定义Use Case和约束 Use Cases 我们可以定义如下 Scope: User 发送一个 search request, 缓存命中成功返回DataUser 发送一个 search request, 缓存未命中,未成功返回DataService 有高可用 约束和假设 状态假设 Traffic 分布不是均匀的 热度高的查询总是被…

接口测试遇到500报错?别慌,你的头部可能有点问题

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

class_13:静态成员static关键字

#include <iostream>using namespace std;class Myclass{ public:int datas;static int staticValue; //静态成员变量在类外进行初始化void printInfo(){cout<<datas<<endl;}static int getStaticDatas()//静态成员函数不能直接访问非静态变量和非静态函数&a…

Python sleep函数用法:线程睡眠

如果需要让当前正在执行的线程暂停一段时间&#xff0c;并进入阻塞状态&#xff0c;则可以通过调用 time 模块的 sleep(secs) 函数来实现。该函数可指定一个 secs 参数&#xff0c;用于指定线程阻塞多少秒。 当前线程调用 sleep() 函数进入阻塞状态后&#xff0c;在其睡眠时间…