暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MogDB支持在建表后修改表日志属性

原创 MogDB 2024-08-06
165

可获得性

本特性自MogDB 5.0.6版本开始引入。

特性简介

本特性支持在建表后通过ALTER TABLE语句修改表的日志属性。

客户价值

增强MogDB与Oracle的兼容性,减少应用程序的迁移代价,提升产品易用性,部分场景提升性能。

特性描述

将普通表修改为非日志表,可以在临时导入大量数据进行计算时提高导入效率。非日志表中写入的数据不会被写入到预写日志,但非日志表在冲突、执行操作系统重启、数据库重启、主备切换、切断电源操作或异常关机后会被自动截断,存在数据丢失的风险。

ALTER TABLE语法变更如下:

ALTER TABLE [ IF EXISTS ] { table_name }{ SET { LOGGED | UNLOGGED } -- PG | { LOGGING | NOLOGGING } -- ORACLE }

特性约束

  • 分区表、列存表、临时表和全局临时表不支持修改日志属性。
  • 普通表被其他普通表的外键约束引用时,不支持修改为非日志表。
  • 非日志表的外键约束引用了其他非日志表时,不支持修改为普通表。
  • 表日志属性修改后,索引的日志属性自动被修改。
  • 本特性适用于A模式和PG模式。

示例

-- 创建logged普通表 MogDB=# create table t_logged(a integer,b text); CREATE TABLE MogDB=# insert into t_logged values (generate_series(1, 3), 'a'|| generate_series(1, 3)); INSERT 0 3 MogDB=# select * from t_logged order by a,b; a | b ---+---- 1 | a1 2 | a2 3 | a3 (3 rows) MogDB=# select relname, relpersistence from pg_class where relname='t_logged'; relname | relpersistence ----------+---------------- t_logged | p (1 row) -- 修改为unlogged/logged表 MogDB=# alter table t_logged set unlogged; ALTER TABLE MogDB=# select relname, relpersistence from pg_class where relname='t_logged'; relname | relpersistence ----------+---------------- t_logged | u (1 row) MogDB=# alter table t_logged logging; ALTER TABLE MogDB=# select relname, relpersistence from pg_class where relname='t_logged'; relname | relpersistence ----------+---------------- t_logged | p (1 row) MogDB=# alter table t_logged nologging; ALTER TABLE MogDB=# select relname, relpersistence from pg_class where relname='t_logged'; relname | relpersistence ----------+---------------- t_logged | u (1 row) MogDB=# alter table t_logged set logged; ALTER TABLE MogDB=# select relname, relpersistence from pg_class where relname='t_logged'; relname | relpersistence ----------+---------------- t_logged | p (1 row) -- 清理环境 MogDB=# drop table if exists t_logged cascade; DROP TABLE

相关页面

ALTER TABLE

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论