PostgreSql 统一修改date字段为timestamp

news/2024/12/20 23:12:54/

        在《Powdersigner + PostgreSql 同步表结构到pg数据库》中,导入表结构到pg数据后,发下时间对不上了。mysql的datetime转换后pg的变成了date了。 再同步到数据后,就变成日期类型了。  因为表中基本都有创建时间和修改时间,两个相对固定的字段,因此想做一个统一的处理。

        把《postgreSql使用||拼接sql实现一次性修改库里面所有字段的属性_pg修改字段属性_友妖气的博客-CSDN博客》 和《Postgresql 如何查出一个表/所有表的所有列名_iteapoy的博客-CSDN博客》重新做一个梳理

        《Postgresql学习文档》

1,查出当前库里面的表格字段:

 -- 所有表字段
select * from information_schema.columns;-- 只查公共的表字段
select * from information_schema.columns 
where table_schema='public' and table_name<>'pg_stat_statements';

2,根据类型过滤字段:

select * from information_schema.columns 
where table_schema='public' and table_name<>'pg_stat_statements' 
and data_type = 'date';

3,pg修改字段类型:

ALTER TABLE table_name ALTER COLUMN column_name DATA TYPE datatype;

4,拼接要修改表名和字段

SELECT 'ALTER table '||table_name||' alter COLUMN '|| column_name ||
' SET DATA TYPE timestamp ;' FROM information_schema.columns
where table_schema='public' and table_name<>'pg_stat_statements' and data_type = 'date' order by table_name ;

执行后,得到修改类型的语句,可以导出来,再执行。 

5,再拼接到一起array_to_string

不导出来的话,可以再拼接,

 select array_to_string(array_agg(sqls), ' ') from (SELECT 'ALTER table '||table_name||' alter COLUMN '||column_name||
' SET DATA TYPE timestamp ;' as sqlsFROM information_schema.columnswhere table_schema='public' and table_name<>'pg_stat_statements' and data_type = 'date' order by table_name ) as temp;

再把内容复制出来,格式化下,再执行。

注意:

        如果时间是有用date类型的,再根据字段名称进行一个过滤,特殊话处理!

总结:

        如果有碰到需要统一修改固定表字段类型的,可以用这样的方法去处理,比较省事。


http://www.ppmy.cn/news/1124799.html

相关文章

【算法】算法设计与分析 课程笔记 第二章 递归与分治策略

2.1 递归 直接或间接地调用自身的算法称为递归算法。 用函数自身给出定义的函数称为递归函数。 2.1.1 阶乘 首先得想到一个求阶乘的函数&#xff1a; 这个函数的下面那个式子就用到了调用自身&#xff0c;所以可以用递归来实现&#xff0c;将主问题拆分成若干层的子问题&am…

二进制中1的个数 C++实现

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std; const int N100010; int a[N]; int n;int lowbit(int x){return x & -x; }int main(){scanf("%d",&n);for(int i0;i<n;i) scanf("%d",&a[i]);for(int i…

Spring面试题9:Spring的BeanFactory和FactoryBean的区别和联系

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的BeanFactory和FactoryBean的区别和联系 区别:BeanFactory是一个工厂接口,主要负责管理和创建Bean实例。它是Spring提供的最底层的…

Level FHE 的高效实现 兼容 Level FHE 的高级算法

参考文献&#xff1a; [CS05] Choi Y, Swartzlander E E. Parallel prefix adder design with matrix representation[C]//17th IEEE Symposium on Computer Arithmetic (ARITH’05). IEEE, 2005: 90-98.[SV11] Smart N P, Vercauteren F. Fully homomorphic SIMD operations[…

二、ubuntu主机端tftp及nfs服务开发环境安装

一.主机端tftp服务环境安装及配置 检查是否已经安装tftp server $dpkg -s tftpd-hpa#如果提示未安装服务&#xff0c;则执行下面安装指令$sudo apt-get install tftpd-hpa tftp-hpa#tftpd-hpa服务端 tftp-hpa客户端创建tftp启动目录&#xff0c;用于存放内核与设备树文件&a…

Android跨进程通信:Binder机制原理

目录 1. Binder到底是什么&#xff1f; 2. 知识储备 2.1 进程空间划分 2.2 进程隔离 & 跨进程通信&#xff08; IPC &#xff09; 2.3 内存映射 2.3.1 作用 2.3.2 实现过程 2.3.3 特点 2.3.4 应用场景 2.3.5 实例讲解 ① 文件读 / 写操作 ② 跨进程通信 3. Bi…

企业资源计划即 ERP (Enterprise Resource Planning)

ERP是一种主要面向制造行业进行物质资源、资金资源和信息资源集成一体化管理的企业信息管理系统。ERP是一个以管理会计为核心可以提供跨地区、跨部门、甚至跨公司整合实时信息的企业管理软件。针对物资资源管理&#xff08;物流&#xff09;、人力资源管理&#xff08;人流&…

java面试题-jvm基础知识

1 JVM组成 1.1 JVM由那些部分组成&#xff0c;运行流程是什么&#xff1f; 难易程度&#xff1a;☆☆☆ 出现频率&#xff1a;☆☆☆☆ JVM是什么 Java Virtual Machine Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&a…