VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

CHECKSUM TABLE

功能描述

CHECKSUM TABLE用于计算表数据校验和。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
  • 不支持QUICK模式(返回NULL)。
  • 对于非普通表(例如视图)、不存在的表均返回NULL。
  • 不支持与异构数据库的表校验和的可比性(例如对于相同数目,在Vastbase和MySQL中查询结果无法对比)。
  • 非QUICK模式的校验和计算基于查询结果子串,暂不支持针对列的数据类型的区分。

语法格式

CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED]

参数说明

  • tbl_name

    表名,可指定表名。也可以指定schema_name.table_name

  • QUICK | EXTENDED

校验模式,其中QUICK为表支持记录并实时在线更新校验和,EXTENDED则为基于一行一行计算的校验和,当只支持EXTENDED(也即默认值)。

示例

1、创建测试表。

CREATE TABLE tst_t1(id int,name VARCHAR(20),addr text,phone text,addr_code text);
CREATE TABLE tst_t2 AS SELECT * FROM tst_t1;

2、向表中插入数据。

INSERT INTO tst_t1 values(2022001, 'tst_name1', 'tst_addr1', '15600000001', '000001');
INSERT INTO tst_t1 values(2022002, 'tst_name2', 'tst_addr2', '15600000002', '000002');
INSERT INTO tst_t1 values(2022003, 'tst_name3', 'tst_addr3', '15600000003', '000003');
INSERT INTO tst_t1 values(2022004, 'tst_name4', 'tst_addr4', '15600000004', '000004');
INSERT INTO tst_t2 (SELECT * FROM tst_t1 ORDER BY id DESC);

3、计算表数据校验和。

checksum table tst_t1,tst_t2,xxx;

返回结果为:

       Table        |  Checksum  
--------------------+------------
 tst_schema1.tst_t1 | 1579899754
 tst_schema1.tst_t2 | 1579899754
 tst_schema1.xxx    | NULL