pgsql 一键修改PGSQL表名、字段名为小写
一键修改PGSQL表名、字段名为小写
由MySQL或者Oracle无脑迁移到PostgreSQL时候多半会踩到的坑就是pgsql对于字段名或者表名中大小写问题。因为pgsql在sql的prepare时候会将大写转为小写,所以如果你的table_name或者column_name中存在大写字母,并且你的sql中没有将其用双引号“”包裹起来的时候,就会导致查询不到或者表不存在等情况,非常令人头疼。
这里提供一个转换的sql,可以将对应的column_name或者table_name中的大写字母转为小写。虽然可以通过双引号包裹的形式解决,但是为了顺应PG的号召,同时避免在日后出现更多的麻烦,还是直接转了得了!!!
首先在PG中建立一个函数,用来执行sqlstring(pg中select 'alter table ...' from xxx
这种形式下,只会拼接sql,不会去执行拼接好的sql,貌似mysql就会执行啊。。。)
创建exec(sqlstring)
函数方便执行
CREATE OR REPLACE FUNCTION "public"."exec"("sqlstring" varchar)RETURNS "pg_catalog"."varchar" AS $BODY$declareres varchar(50);BEGINEXECUTE sqlstring;RETURN 'ok';END
$BODY$LANGUAGE plpgsql VOLATILECOST 100
通过条件拼接SQL,根据需要自行修改吧:
-- 根据条件查询所有大写的column
select * from information_schema.columns where table_schema='public' and table_name<>'pg_stat_statements' and column_name <> lower(column_name);-- 修改条件后,通过下列语句转换column_name中的大写字母
SELECTexec('alter table "' || table_name || '" rename column "' || column_name || '" to ' || lower( column_name ) || ';')
FROMinformation_schema.COLUMNS
WHEREtable_schema = 'public' AND column_name <> lower(column_name)AND table_name <> 'pg_stat_statements' AND table_name = 'prescribe_state_copy1';-- 查询大写的table_name
SELECT * FROM information_schema.TABLES WHERE table_schema = 'public' AND table_catalog = 'Guns' AND table_name <> lower( table_name );-- 修改表名中的大写为小写
SELECTexec ( 'alter table "' || table_name || '" rename to ' || lower( table_name ) || ';' )
FROMinformation_schema.tables
WHEREtable_schema='public' and table_catalog = 'Guns' and table_name <> lower(table_name);
pgsql 一键修改PGSQL表名、字段名为小写相关推荐
- 修改mysql表的字段名_mysql中修改表字段名/字段长度/字段类型详解
在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...
- thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)
thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...
- postgres 把一个表的值转成另一个表的字段名_Phoenix系列创建Phoenix映射表
目前,在公司小部分的业务场景中有用到 Phoenix,但也仅限基于 Phoenix 的二级索引机制来进行查询上的优化.虽然使用的频次不大,但偶尔用到时,有些语句的使用方式和注意事项总记不太熟,每次都需 ...
- oracle中更改表名语句,转:取Oracle 表名 字段名 注释等实用语句
1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type fromuser_ind_columns t,user_indexes i where t.inde ...
- 3、MySQL——SQLyog图形化客户端、表的字段名,常见数据类型的属性
目录 一.SQLyog图形化客户端 二.创建数据表 1.语法格式: 2.表数据的设置 三.常见数据类型的属性 1.NULL和NOT NULL 2.DEFAULT--默认值 3.PRIMARY KEY- ...
- sql大小写敏感吗_postgresql基础:表名字段名是大小写敏感的么
很多人知道postgresql的表名字段名是大小写不敏感的,比如这样一个sql查询 select ID,name, TYPE, score FROM pubLIC.STUdent_SCOre limi ...
- oracle查询表的字段类型有哪些,oracle中查询表的信息,包括表名,字段名,字段类型,主键(精)...
通过搜索摸索,总结了一下 oracle 中查询表的信息,包括表名,字段名,字段类型,主键, 外键唯一性约束信息,索引信息查询 SQL 如下,希望对大家有所帮助: 1.查询出所有的用户表 select ...
- 获取sqlserver数据库中所有库、表、字段名的方法
获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...
- 查询数据库里所有表名,字段名的语句
查询数据库里所有表名,字段名的语句 SQL查看所有表名: 1.select name from sysobjects where type='U' 2.select * ...
最新文章
- ASP.net session 使用总结(2)
- Rabbitmq后台运行命令
- asp.net C#生成和解析二维码代码
- Javascript学习资源整理
- python Dask库安装方法
- java项目(注册和登录(成功后查看商品的信息))
- 【Python基础】如何用Pandas处理文本数据?
- 深度学习2.0-35.ResNet-18实战
- bzoj 2962: 序列操作
- Java ssm框架是什么?
- NOI2014起床困难综合症
- 利用模式进行构建第九讲——树形模式
- 计算机的硬盘u盘属于什么,移动硬盘和机械硬盘有什么区别?
- 央行数字货币(数字人民币)DCEP
- Mac中代理配置不稳定生效
- 针对DDoS攻击异常流量攻击统计
- 一文简单了解互联网流量变现
- 上班族做什么副业赚钱?全面解析副业赚钱模式!
- 大数据的Hadoop架构有哪些优势?
- 手机扫描行驶证识别应用
热门文章
- CSP第十二次认证 行车路线 拆点
- 儿时经典电影回顾,你看过几部?
- 使用U盘重装Windows10系统详细步骤及配图【官方纯净版】
- CSGO 制作cfg文件及一些常用命令
- DNS协议分析(域名解析)
- 网站开启https后很慢_网站开启https后地址栏安全锁灰色或黄色叹号
- 连接数据库报错init datasource error, url: jdbc:mysql:/
- 6.4 GitHub - 管理组织
- P5715 【深基3.例8】三位数排序
- HDLBits 系列(8)——Sequential Logic(Finite State Machines(一))