首页 > 其他分享 >GBase 8c 兼容模式使用说明

GBase 8c 兼容模式使用说明

时间:2024-09-20 11:24:13浏览次数:13  
标签:兼容性 postgres 8c CREATE 数据库 GBase 兼容 id

为应对同构/异构数据库迁移通常面临的挑战,GBase 8c从数据库自身兼容性、配套工具兼容性等多方面进行设计优化,在内核本身的适配能力和性能基础上,兼容Oracle,PostgreSQL,MySQL,Teradata等多种关系型数据库,并且提供完善的SQL支持和丰富的函数库。下面以常用关系型数据库的相关语法做简单介绍

 

库级兼容性:

  • DBCOMPATIBILITY [ = ] compatibility_type
    指定兼容的数据库的类型,默认兼容O。
    取值范围:A、B、C、PG。分别表示兼容O、MY、TD和POSTGRES。

       注意:

                1.该参数只能建库时确定好,后期无法直接通过sql语句修改兼容性;

                2.A模式下,数据库将空字符串作为NULL处理,数据类型DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。

示例:

CREATE DATABASE 数据库名 WITH  ENCODING = 'UTF8' DBCOMPATIBILITY = 'A' OWNER 用户名;

 

1.兼容Oracle

CREATE DATABASE oracle WITH  ENCODING = 'UTF8' DBCOMPATIBILITY = 'A' OWNER test;

CREATE TABLE users (
  id NUMBER PRIMARY KEY,
  username VARCHAR2(50) NOT NULL,
  email VARCHAR2(100) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  );

CREATE UNIQUE INDEX idx_users_username ON users(username);

insert into users values(1,'张三','[email protected]');
select * from users;
 

GBase 8c 兼容模式使用说明_数据库

2.兼容PostgreSQL

       注意:

                1.PG模式下,CHAR和VARCHAR以字符为计数单位,其它兼容性以字节为计数单位。例如,对于UTF-8字符集,CHAR(3)在PG兼容性下能存放3个中文字符,而在其它兼容性下只能存放1个中文字符。

CREATE DATABASE pg WITH  ENCODING = 'UTF8' DBCOMPATIBILITY = 'PG' OWNER test;

CREATE TABLE postgres (
  id INT PRIMARY KEY,
  data VARCHAR(100)
  ;
 
CREATE SEQUENCE postgres_id_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
ALTER TABLE postgres ALTER COLUMN id SET DEFAULT nextval('postgres_id_seq');

pg=# select nextval('postgres_id_seq');
nextval
---------
      1
(1 row)

pg=# select nextval('postgres_id_seq');
nextval
---------
      2
(1 row)

 

insert into postgres(data) values('11acb'),('222ABC');
select * from postgres;
 

GBase 8c 兼容模式使用说明_字符串_02

3.兼容MySQL

       注意:

                1.将字符串转换成整数类型时,如果输入不合法,B兼容性会将输入转换为0,而其它兼容性则会报错。

 

CREATE DATABASE mysql WITH  ENCODING = 'UTF8' DBCOMPATIBILITY = 'B' OWNER test;
 \c mysql

CREATE TABLE mytable (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100)
   ;

INSERT INTO mytable (name) VALUES ('John');
SELECT LAST_INSERT_ID();
last_insert_id
----------------
             1
(1 row)

SELECT * from  mytable;
 id | name
----+------
 1 | John
 

GBase 8c 兼容模式使用说明_字符串_03

 

另外呢,GBase 8c在mysql兼容模式下,也支持mysql内置函数

LEAST(expr1, expr2, expr3, …) 返回列表中的最小值 

GBase 8c 兼容模式使用说明_mysql_04

LOG(x) 返回自然对数(以 e 为底的对数)

GBase 8c 兼容模式使用说明_数据库_05

POW(x,y)/POWER(x,y)返回 x 的 y 次方

GBase 8c 兼容模式使用说明_数据库_06

CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串

GBase 8c 兼容模式使用说明_数据库_07

FIND_IN_SET  回在字符串s2中与s1匹配的字符串的位置

GBase 8c 兼容模式使用说明_mysql_08

FORMAT(x,n)函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入

GBase 8c 兼容模式使用说明_数据库_09

标签:兼容性,postgres,8c,CREATE,数据库,GBase,兼容,id
From: https://blog.51cto.com/u_17026136/12063141

相关文章

  • GBase 8c NUMA绑核调优实操
    NUMA优化技术是针对数据库在NUMA架构CPU上运行时出现的资源消耗不均、并发场景下远端Node时延较高等问题进行优化的技术。GBase8c数据库通过设置执行线程与Node节点的亲和度,可以将线程绑定在指定的CPU核心运行,从而避免跨Node调度,降低远端访问时延,提升数据库对外处理性能。同时,线程......
  • 南大通用GBase 8s 集群网络交互信息概述(上)
    在当今数据驱动的商业环境中,数据库的性能和可靠性是企业成功的关键。GBase8s作为一款的国产数据库系统,其SSC集群架构通过优化网络交互,显著提升了性能和可用性。本文将分两部分聚焦于GBase8sSSC集群的网络交互信息概述和网络吞吐量计算。在GBase 8sSSC集群中,主节点向从节点只传......
  • 南大通用GBase 8s 集群网络交互信息概述(下)
    在上篇文章中,我们了解了GBase8sSSC集群的网络交互机制。本文将聚焦于网络吞吐量的计算,分析SSC集群在不同业务场景下的表现,并与HAC和RHAC集群进行对比。一、无业务场景下的网络吞吐量在无业务时,网络上只有每秒发送的心跳包和心跳包的ACK,则网络吞吐量极低,具体为(114+86)/(1024*1024......
  • GBase8c使用wal2json逻辑复制槽
    1. 参数设置要想使用wal2json逻辑复制,要设置以下参数:wal_level=logicalenable_slot_log=onwal_level设置为logical,表示WAL日志支持逻辑复制。如果需要进行备机解码,要在对应的主机上设置enable_slot_log为on。 2. 逻辑复制槽的使用2.1 创建逻辑复制槽下面来创建一个逻辑复制......
  • 南大通用GBase 8s HAC集群搭建部署指南(下)
    在上篇文章中,我们完成了GBase8sHAC集群搭建的初步配置。本文将重点介绍如何配置主节点和辅节点之间的互信关系,以及如何搭建并验证HAC集群的状态。1、配置互信互信是集群节点间通信的基础。我们可以通过配置.rhosts文件或使用REMOTE_SERVER_CFG参数两种方式来实现互信。根据企业的......
  • 基于Rose HA的GBase 8a高可用方案
    方案背景  随着计算机应用的不断深入,企业对计算机系统的依赖程度也日渐增加。在一些关键应用中,后台数据库是否可以提供及时、可靠的信息和服务是必不可少的,甚至会成为影响公司业务的关键因素。  计算机硬件与操作系统都不可避免地会发生故障,这些故障有可能给企业带来极大的......
  • GBase 8c 兼容性-oracle分区语法
    GBase8c分布式版本支持兼容oracle分区表功能,支持二级分区,9种分区组合,interval分区。分区明显如下:hash分区sql示例,与oracle写法一致。--一级hash分区droptableifexistsmea_hashcascade;createtablemea_hash(city_idint,logdatetimestamp,idint)partition......
  • GBase 8s 自定义split_part函数
    gbase数据该函数的功能:以第二个参数separator_in分隔第一个参数str_in,返回第三个参数field_in指定字段。dropfunctionifexistssplit_part2;createfunctionsplit_part2(str_inlvarchar(2048),separator_inchar(1),field_inint)returningvarchar(255);def......
  • GBase 8s数据库连接 – Perl(DBD::ODBC)
    软件需求:1,GBase8sCSDK2,perl-5.16.3及perl-devel-5.16.33,unixODBC-2.3.14,DBD-ODBC-1.60###1,系统环境确认####1.1perl、perl-devel及unixODBC版本Linux下root用户通过rpm确认perl、perl-devel,unixODBC、unixODBC-devel均已经安装,如下:[root@rhel7u6~]#rpm-qaperlperl......
  • GBase8a数据库nmon监控CPU利用率
    实时监控[gbase@xxx-node-1~]$nmon交互命令:h:帮助q:退出c:监控CPU利用率m:监控内存使用情况d:监控磁盘使用率V:监控虚拟内存n:监控网络k:监控内核后台监控上面的快捷命令只能将当前的系统资源实时显示在屏幕下,无法保存到文件中,如果要将结果保存到文件进行分析,需要用到命令行......