mysql迁移greenplum

本文总结了多种SQL函数和表达式的转换技巧,包括位置查询、类型转换、条件判断等,并提供了从一种数据库系统到另一种系统的迁移指南。
1.locate(a,b)->position(a in b)
2.convert()函数不可以使用
3.ifnull(null,0.00)->COALESCE(null,0.00)
4.timestampadd(hour,24,jysj)->jysj::timestamp+'24 hour'
5.substr()->substring()
6.from_unixtime(unix_timestamp(jysj,'yyyy-MM-dd'))->to_date(jysj,'yyyy-MM-dd')
7.year(jysj)->to_char(jysj,'yyyy')
8.concat(cast(cast(nf as char),'年',jd))->nf||'年'||jd as name
9.substr(from_unix_timestamp(jysj),1,$sjd$)->substring(jysj,1,$sjd$)
10.instr(a,b)->position(a in b)
11.if(a=0,1,2)->case when a=0 then 1 else 2 end
12.if(isnull(jyye),0,jyye)->case jyye when colaesce() 
13.isnull(null,0.00)->COALESCE(null,0.00)jyye then 0 else jyye end as jyye
14.date_format(jysj,'%y-%m-%d')->to_date(jysj,'yyyy-MM-dd')
15.left(jyzjhm,4)->substring(jyzjhm from 0 for 4)
16.日期函数  字符串函数
18.insertselect 对于select中的字段有顺序要求,且字段不可以少,必须对应。
19.unix_timestamp(不带引号)->to_timestamp(不带引号)
20.postgresql中没有四舍五入->可以使用cast(a as numeric)来替代round()
21.data_format(jysj,'%Y-%m')->to_date(jysj,'yyyy-MM')
22.date_add(jysj,interval 1 day) ->jysj + interval '1 day'
23.abs(round(unix_stamp(a.jysj)-unix_timestamp(b.jysj))) <$max_sjc$->
   a.jysj>b.jysj and b.jysj + interval '$max_sjc$ second' < a.jysj
24.isnull(a)->a is null
25.(@rownum:=@rownum+1) -> row_number() over (order by jzje)
26.if(@pjyhm=t2,@rank:=@rank+1,@rank:=1)->row_number() over(partition by t1.jyhm order by t1.交易总金额 desc)
27.if(@pjyhm=t2.jymc,@rank:=@rank+1,@rank:=1)->row_number() over (partition by t1.jyhm order by t1.$pxfs$ desc)
### PostgreSQLGreenplum的关系 Greenplum数据库是在PostgreSQL的基础上构建而成,继承了许多PostgreSQL的功能和特性。由于这种渊源关系,几乎所有适用于PostgreSQL的应用程序和服务都可以无缝迁移Greenplum环境中[^1]。 ### 数据库架构的不同之处 #### 架构模式 - **PostgreSQL**坚持传统的客户端/服务器模型,这使得它不适合嵌入式应用程序开发环境;相比之下, - **Greenplum**则采用了大规模并行处理(MPP)体系结构来优化大型数据集的操作性能[^4]。 #### 扩展性和灵活性 虽然两者都允许一定程度上的定制化扩展,但是Greenplum特别强调了对于超大数据量的支持能力,并且引入了一些专有的优化措施,如列存储、压缩机制等,这些特点使其成为OLAP场景下的理想选择[^3]。 ### 功能特性的对比 | 特性 | PostgreSQL | Greenplum | | --- | --- | --- | | 支持的标准SQL语句 | 大部分标准SQL语法得到良好实现 | 基本兼容PostgreSQL的SQL语法| | 并发控制 | 使用多版本并发控制(MVCC)| 同样采用MVCC策略| | 存储引擎 | 单节点部署,默认行存 | MPP架构下分布式文件系统中的列存或混合模式| | 性能表现 | 对于中小规模业务足够优秀 | 在相同资源配置前提下优于MySQL和其他传统RDBMS| ### 应用领域倾向 鉴于上述差异,当涉及到复杂的分析任务或是需要处理海量历史记录时,通常会选择Greenplum作为解决方案之一。而对于日常的企业级应用服务,则可能更多考虑稳定性更强且易于维护的PostgreSQL[^5]。 ```sql -- 示例:创建表命令在两种环境下基本一致 CREATE TABLE example_table ( id SERIAL PRIMARY KEY, name VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值