Teradata:如何备份使用标识列的表?

时间:2012-04-30 15:15:13

标签: sql backup teradata identity-column

在Teradata中,我一直在为表做备份的方式是这样的:

create table xxx_bak as xxx with data

效果很好,但我刚刚发现这对带有标识列的表不起作用。

我需要一个备份方法,可以复制一个表格,其数据完好无损,以便我可以将其回滚,以防万一我弄乱了一些数据。

3 个答案:

答案 0 :(得分:1)

如果您只想要表的副本,可以创建一个具有相同结构的表,但不要将键列设置为标识列。然后,您可以从原始表中插入。但是,在保留相同的密钥时,您无法从备份中插回旧表。

使用相同的密钥进行备份的方法是使用归档/恢复工具ARCMAIN。

像这样备份:

logon my_server/my_user, my_password;
archive data tables (my_database.my_table), release lock, file=backup_file;

像这样恢复:

logon my_server/my_user, my_password;
restore data tables (my_database.my_table), release lock, file=backup_file;

答案 1 :(得分:0)

这涉及3个步骤:

 1. SHOW TABLE orig_Table; (*Get the DDL*)

 2.  Replace orig_Table with bkp_Table name

 3.  INSERT INTO bkp_Table SELECT * FROM orig_Table;

答案 2 :(得分:0)

经过一年半的时间,我终于找到了解决这个问题的方法:

create table mydb.mytablebackup as 
(select * from (select * from mydb.mytable) x) 
with data;

确保限定最里面的子查询,否则它将无效。