PostgreSQL 对字段大小写敏感

缘起

iso=> \d+ test;
                         Table "public.test"
 Column |         Type          | Modifiers | Storage  | Description
--------+-----------------------+-----------+----------+-------------
 no     | character varying(32) | not null  | extended |
 Name   | text                  | not null  | extended |
Indexes:
    "test_pkey" PRIMARY KEY, btree (no, "Name")
Has OIDs: no

iso=> insert into test(no, Name) values("123", "jihite");
ERROR:  column "name" of relation "test" does not exist
LINE 1: insert into test(no, Name) values("123", "jihite");
                             ^

插入表的时候,提示我没有字段‘Name’,可我明明写的是‘Name’,可定睛一看,人家提示的是没有name。这就奇怪了,我输入的是大写的‘N‘,为何提示是小写的‘n‘。

由于 PostgreSQL 是大小写敏感的,并默认对SQL语句转化为小写,所以不论我是写Name还是NAME还是NAmE,统统转化为name。

那么怎么破解呢,毕竟人家表里确确实实有Name字段,加上双引号就行了。看例子

iso=> insert into test(no, "Name") values (‘123‘, ‘jihite‘);
INSERT 0 1
时间: 2024-11-10 16:07:31

PostgreSQL 对字段大小写敏感的相关文章

PostgreSQL Json字段作为查询条件案例

业务扩展字段在数据库中经常会使用json格式的数据来存储,这就涉及到一个头疼的问题,假设要使用扩展字段里的某个值作为查询条件怎么办,原来PostgreSQL本身就支持这种查询方式. 例子:假设业务扩展字段ext_data存的json格式如下: 我们需要查询扩展字段中extInfo.userType=1的所有数据,那么对应的SQL语句如下: select * from event_log where (ext_data::json#>>'{extInfo,userType}')::text =

postgresql (PG) 字段用逗号 “,”隔开 判断是否含有某个值

如有一个student 学生表 student表中有字段 课程字段 分别用 1,2,3,4,5,6,7 表示不通的7门课程 CREATE TABLE student ( name varchar(255), course varchar(255) ) insert into student (name ,course) values ('张三','1,2,5,7'); 问题一.判断 张三 是否选择了 课程 2 select * from where name = '张三' and string_

postgresql varchar字段regexp_replace正则替换

1.替换目标1).contact字段类型 varchar.2).去掉字段中连续的两个,每个等号后面数字不同,effective_caller_id_name=051066824513,effective_caller_id_number=051066824513. 2.查询原字段内容 select contactfrom pbx_agentswhere contact ~ 'effective_caller_id_name=' limit 2 "{sip_append_audio_sdp=a=f

PostgreSQL 修改字段类型从int到bigint

由于现在pg的版本,修改int到bigint仍然需要rewrite表,会导致表阻塞,无法使用.但可以考虑其他方式来做.此问题是排查现网pg使用序列的情况时遇到的. 由于int的最大值只有21亿左右,而且自增列多为主键,当达到最大值时,数据就会无法插入.一般情况是修改类型为bigint,但直接做会锁表,影响现网使用. 这里分两块来看: 1.分区表(修改序列):对于分区表可以直接修改序列为循环形式,而且最大值设置为int的最大值,因为单个分区表很少会将int值用完. alter sequence s

postgresql 修改字段名称

1 ALTER TABLE auth_user RENAME email TO aemail;

Postgresql Jsonb字段内含数组属性的删除元素操作

1.创建示例表 create temp table settings as select '{"west": [ {"id": "aa92f346-7a93-4443-949b-4eab0badd983", "version": 1}, {"id": "cd92e346-6b04-3456-050a-5eeb0bddd027", "version": 3} ]}'::

postgresql某个字段值按照指定规则排序

select id,serial_group_id,state from ap_model order by serial_group_id asc, ( case when state=1 then 1 when state=2 then 2 when state=-1 then 3 when state=3 then 4 when state=0 then 5 else 99 end ) 原文地址:https://www.cnblogs.com/stuhjf/p/10273131.html

go postgresql array

将postgresql数组字段的初始值定为空串时报错,应设置为'{}' pq: 有缺陷的数组常量:"" 若数组字段rows.Scan用interface{}输入,会乱码,但如果字段可为null,scan又会报错 最后将表里面的字段设为not null,然后go读出的string为image=="{... , ... , ...}" strings.Split(image[1:len(image)-1],",")

mysql字段值如何区分大小写

今天做sql查询,发现字段值没区分大小写 mysql> select guid,type,parent_guid from api_assets where guid='3rfI2PsSrCz91mTMDgrZjE';+------------------------+--------+------------------------+| guid | type | parent_guid |+------------------------+--------+-----------------