2010-02-21 66 views

回答

3

您可以使用标准的SQL这一点,特别是insert..select声明。假设你有如下表:

insert into t2 (f1,f2) select f1, f2 from t1; 

它不必是相同的结构,只要这些字段是:

t1: 
    f1 integer 
    f2 varchar(50) 

您可以从该表与将数据移动到另一个类似的表兼容。如果T2这样定义:

t2: 
    f1 integer 
    f2 varchar(7) 
    f3 varchar(50) 

你可以这样做:

insert into t2 (f1,f2,f3) select f1, 'n/a', f2 from t1; 

此外。 select语句具有所有常规选项,例如where子句用于限制复制的数据量,但有些可能没有意义(如order by)。

如果你需要的表本身复制(以及复制数据),select..into是要走的路:

select into t3 from t1; 

这也让where条款,限制了传输的数据。

如果您需要传输批次的数据和性能很重要,您可能需要考虑其中一个非标准SQL选项,如卸载和重新加载表格,或关闭性能“技巧”,如关闭在目标表上编制索引,直到数据传输完成。

相关问题