首页 > 其他分享 >openGauss 通过创建临时表并截断原始表来执行深层复制

openGauss 通过创建临时表并截断原始表来执行深层复制

时间:2024-05-15 10:23:32浏览次数:16  
标签:customer temp 临时 表并 TABLE openGauss 表来

通过创建临时表并截断原始表来执行深层复制

该方法使用CREATE** TEMP **TABLE ... AS语句创建原始表的临时表,然后截断原始表并从临时表填充它完成原始表的深层复制。

在新建表需要保留父表的主键属性,或如果父表具有依赖项的情况下,建议使用此方法。

操作步骤

  1. 使用CREATE** TEMP **TABLE AS语句创建表customer_t的临时表副本customer_t_temp。

    openGauss=# CREATE TEMP TABLE customer_t_temp AS SELECT * FROM customer_t;
    

    说明:

    与使用永久表相比,使用临时表可以提高性能,但存在丢失数据的风险。临时表只在当前会话可见,本会话结束后将自动删除。如果数据丢失是不可接受的,请使用永久表。

  2. 截断当前表customer_t。

    openGauss=# TRUNCATE customer_t;
    
  3. 使用INSERT INTO…SELECT语句从副本中向原始表中填充数据。

    openGauss=# INSERT INTO customer_t (SELECT * FROM customer_t_temp);
    
  4. 删除临时表副本customer_t_temp。

    openGauss=# DROP TABLE customer_t_temp;
    

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:customer,temp,临时,表并,TABLE,openGauss,表来
From: https://www.cnblogs.com/renxyz/p/18193235

相关文章

  • openGauss 数据安全维护建议
    数据安全维护建议为保证openGauss数据库中的数据安全,避免丢失数据,非法访问数据等事故发生,请仔细阅读以下内容。避免数据被丢失建议用户规划周期性的物理备份,且对备份文件进行可靠的保存。在系统发生严重错误的情况下,可以利用备份文件,将系统恢复到备份前的状态。避免数据被非法......
  • openGauss 无权限角色导出数据
    无权限角色导出数据gs_dump和gs_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导出所要求的权限时,会无法导出数据。此时,需先将具有权限的角色赋权给无权限角色,然后在导出命令中设置--role参数来指定具备权限的角色。在执行命令后,gs_dump和gs_dumpall会使用--ro......
  • openGauss 通过INSERT语句直接写入数据
    通过INSERT语句直接写入数据用户可以通过以下方式执行INSERT语句直接向openGauss数据库写入数据:使用openGauss数据库提供的客户端工具向openGauss数据库写入数据。请参见向表中插入数据。通过JDBC驱动连接数据库执行INSERT语句向openGauss数据库写入数据。详细内容请参见......
  • openGauss 相同表的并发INSERT
    相同表的并发INSERT事务T1:STARTTRANSACTION;INSERTINTOtestVALUES(2,'test2','test123');COMMIT;事务T2:STARTTRANSACTION;INSERTINTOtestVALUES(3,'test3','test123');COMMIT;场景1:开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后,执......
  • openGauss 相同表的INSERT和DELETE并发
    相同表的INSERT和DELETE并发事务T1:STARTTRANSACTION;INSERTINTOtestVALUES(1,'test1','test123');COMMIT;事务T2:STARTTRANSACTION;DELETEtestWHERENAME='test1';COMMIT;场景1:开启事务T1,不提交的同时开启事务T2,事务T1执行INSERT完成后,执行事务T2的DELETE,此时显......
  • openGauss 限制
    限制发布订阅基于逻辑复制实现,继承所有逻辑复制的限制,同时发布订阅还有下列额外的限制或者缺失的功能。数据库模式和DDL命令不会被复制。初始模式可以手工使用gs_dump--schema-only进行拷贝。后续的模式改变需要手工保持同步。序列数据不被复制。后台由序列支撑的serial或......
  • openGauss 写入和读写操作
    写入和读写操作关于写入和读写操作的命令:INSERT,可向表中插入一行或多行数据。UPDATE,可修改表中现有数据。DELETE,可删除表中现有数据。COPY,导入数据。INSERT和COPY是纯写入的操作。并发写入操作,需要等待,对同一个表的操作,当事务T1的INSERT或COPY未解除锁定时,事务T2的INSERT......
  • openGauss 相同表的并发UPDATE
    相同表的并发UPDATE事务T1:STARTTRANSACTION;UPDATEtestSETaddress='test1234'WHEREname='test1';COMMIT;事务T2:STARTTRANSACTION;UPDATEtestSETaddress='test1234'WHEREname='test2';COMMIT;事务T3:STARTTRANSACTION;......
  • openGauss 修改索引时只调用索引名提示索引不存在
    修改索引时只调用索引名提示索引不存在问题现象修改索引时只调用索引名提示索引不存在。举例如下。--创建分区表索引HR_staffS_p1_index1,不指定索引分区的名称。CREATEINDEXHR_staffS_p1_index1ONHR.staffS_p1(staff_ID)LOCAL;--创建分区索引HR_staffS_p1_index2,并指......
  • openGauss\postgreSQL数据库性能查看
    1.查看系统CPU使用率sar-u-f/var/log/sa/sa27(sa27根据时间变化,sa27是27号信息的记录)结果输出:15时52分01秒CPU%user%nice%system%iowait%steal%idle15时53分01秒all0.320.000.690.000.0098.9915时54分01秒all0.300.000.680.000.0099.0215时55......