文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

PostgreSQL兼容性

建库规范

MogDB创建数据库使用PG兼容模式方法如下:

create database dbnam DBCOMPATIBILITY='PG' encoding=’utf8’;

数据类型

数值类型

在开发使用中,MogDB只允许使用smallint、integer、bigint、numeric[(p[,s])]、serial、bigserial这几种类型。

类型 PostgreSQL MogDB 存储尺寸 备注
tinyint / 支持 1字节 0 ~ 255
smallint 支持 支持 2字节 -32,768 ~ +32,767
integer 支持 支持 4字节 -2,147,483,648 ~ +2,147,483,647
binary_integer / 支持 / integer别名
bigint 支持 支持 8字节 -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807
decimal[(p[,s])] 支持 支持 可变字节 最高小数点前131072位,以及小数点后16383位
numeric[(p[,s])] 支持 支持 可变字节 最高小数点前131072位,以及小数点后16383位
number[(p[,s])] / 支持 / numeric别名
real 支持 支持 4字节 6位十进制数字精度
float4 / 支持 4字节 6位十进制数字精度
double precision 支持 支持 8字节 15位十进制数字精度
binary_double / 支持 8字节 double precision别名
float8 / 支持 8字节 15位十进制数字精度
float[(p )] / 支持 4字节或8字节
dec[(p,[s])] / 支持 / 最高小数点前131072位,以及小数点后16383位
integer[(p,[s])] / 支持 / 最高小数点前131072位,以及小数点后16383位
smallserial 支持 支持 2字节 1 ~ 32,767
serial 支持 支持 4字节 1 ~ 2,147,483,647
bigserial 支持 支持 8字节 1 ~ 9,223,372,036,854,775,807
tinyint / 支持 1字节 0 ~ 255

字符类型

在开发使用中,MogDB只允许使用char(n)、varchar(n)、text字符类型。

类型 PostgreSQL MogDB 存储尺寸 备注
char(n) 支持 支持 pg中最大为1GB,og中最大为10MB pg中n指字符数量,og中n指字节数量,兼容pg模式配置下n代表字符数量
nchar(n) / 支持 最大为10MB n指字节数量,兼容pg模式配置下n代表字符数量
varchar(n) 支持 支持 pg中最大为1GB,og中最大为10MB pg中n指字符数量,og中n指字节数量,兼容pg模式配置下n代表字符数量
varchar2(n) / 支持 最大为10MB varchar(n)别名
nvarchar2(n) / 支持 最大为10MB n指字符数量
text 支持 支持 1GB - 1
clob / 支持 1GB - 1 text别名

时间类型

在开发使用中,MogDB只允许使用timestamp[(p)][with time zone]date期类型。

类型 PostgreSQL MogDB 存储尺寸 备注
timestamp[(p )][without time zone] 支持 支持 8字节 4713 BC - 294276 AD
timestamp[(p )][with time zone] 支持 支持 8字节 4713 BC - 294276 AD
date 支持 支持 4字节 4713 BC - 5874897 AD (og实际存储空间大小为8字节)
time[(p )][without time zone] 支持 支持 8字节 00:00:00 - 24:00:00
time[(p )][with time zone] 支持 支持 12字节 00:00:00+1459 - 24:00:00-1459
interval[fields][(p )] 支持 支持 16字节 -178000000年 - 178000000年
smalldatetime / 支持 8字节 日期和时间,不带时区,精确到分钟,秒位大于等于30秒进一位
interval day(1) to second(p) / 支持 16字节
reltime / 支持 4字节

json类型

类型 PostgreSQL MogDB 存储尺寸 备注
json 支持 支持 /
jsonb 支持 2.1开始支持 /

关键字

PostgreSQL与MogDB数据库中关键字差异化说明,保留是指数据库保留关键字,不允许自定义使用;非保留或空是指可以自定义使用,MogDB保留字详情,请参考如下。

关键字 MogDB PostgreSQL
AUTHID 保留 #N/A
BUCKETS 保留 #N/A
COMPACT 保留 #N/A
DATE 非保留(不能是函数或类型)
DELTAMERGE 保留 #N/A
EXCLUDED 保留 #N/A
FENCED 保留 #N/A
GROUPING 非保留(不能是函数或类型)
HDFSDIRECTORY 保留 #N/A
IS 保留 保留(可以是函数或类型)
ISNULL 非保留 保留(可以是函数或类型)
LATERAL 保留
LESS 保留 #N/A
MAXVALUE 保留 非保留
MINUS 保留 #N/A
MODIFY 保留 #N/A
NLSSORT 保留 #N/A
NUMBER 非保留(不能是函数或类型)
PERFORMANCE 保留 #N/A
PROCEDURE 保留 非保留
REJECT 保留 #N/A
ROWNUM 保留 #N/A
SYSDATE 保留 #N/A
VERIFY 保留 #N/A

隐式转换异同

input_type target_type MogDB PG
bool int2、int4、int8 支持 int4不支持,其它无
int2 bool、text、bpchar、varchar、interval 支持(bpchar无)
int4 bool、int2、text、bpchar、varchar、interval 支持(bpchar无) bool不支持,int2为in assignment,其它无
int8 bool、text、bpchar、varchar 支持(bpchar无)
text int8、int4、int2、float4、float8、date、timestamp、nemeric 支持
float4 int8、int4、int2、text、bpchar、varchar 支持(bpchar无) 前三in assignment,后无
float8 int8、int4、int2、text、float4、bpchar、varchar、interval、numeric 支持(bpchar无) int8、int4、int2、float4、numeric为in assignment,其它无
bpchar int8、int4、date、timestamp、numeric
date text、bpchar、varchar 支持(bpchar无)
timestamp text、varchar 支持
timestamptz text 支持
numeric int8、int4、int2、text、bpchar、varchar、interval 支持(bpchar无) 前三in assignment,后无
Copyright © 2011-2024 www.enmotech.com All rights reserved.