无间炼狱 发表于 2010-02-25 12:58

关于informix创建临时表并且备份某一字段的方法,急求!!!

我有张表A,表结构是
create table A
(
    jrownum          integer            not null ,
    itemname         varchar(200)                ,
    a                decimal(16,2)               ,
    organno          varchar(30)               ,
    createdate       timestamp                   ,
    reportdate       timestamp                   ,
    modifydate       timestamp                   ,
    curr_type      varchar(10)               ,
    repgran          varchar(10)               ,
    b                decimal(16,2)               ,
    a_fse            decimal(16,2)               ,
    b_fse            decimal(16,2)               
)

我需要将A表中的a_fse字段里面的所有数据备份到一个新的临时表A_tmp中,A和A_tmp的表结构完全相同,
最后再将A_tmp中的a_fse字段中的所有数据重新导入A表的a_fse字段,请问sql该怎么写?
首先在创建临时表A_tmp时候报出错误,提示timestamp类型错误
现在需要的sql有以下几个:
1.创建A的临时表A_tmp;
2.将A表中的a_fse字段的所有数据备份到A_tmp表中的a_fse字段;
3.再将A_tmp表中的a_fse字段的所有数据重新更新到A表中的a_fse字段;

麻烦高手指点,O(∩_∩)O谢谢
3.

liaosnet 发表于 2010-02-25 13:04

也就是说a_tmp表中仅有a_fse一个字段有值??

无间炼狱 发表于 2010-02-25 13:08

回复 2# liaosnet
A_tmp的结构和A表是完全一样的,只是a_fse是我关注的数据而已,别的数据不用理会~

liaosnet 发表于 2010-02-25 13:10

回复liaosnet
A_tmp的结构和A表是完全一样的,只是a_fse是我关注的数据而已,别的数据不用理会~
无间炼狱 发表于 2010-02-25 13:08 http://bbs2.chinaunix.net/images/common/back.gif


    那么你需要如何从a_tmp更新表a呢? 总该有条件限制吧...

无间炼狱 发表于 2010-02-25 13:13

回复 4# liaosnet
其实主要是因为A表会被删除并且重新创建,而我希望保留住A表在删除之前A表中的a_fse字段中的值,等到A表被删除之后重新新建之后重新把原来A表中的a_fse字段中的数据再给它恢复过去,该怎么办呢?

liaosnet 发表于 2010-02-25 13:40

回复 5# 无间炼狱


1.rename 表a为a_tmp;
2.以表a备份的表结构建立新表a;
3.将a_tmp表的中记录导入到a表中即可.

不知道能不能满足你的需求~

qiuf 发表于 2010-03-04 16:02

你应该需要保留的不止是a_fse 字段吧,否则第一个jrownum不允许为空你要填什么?
按你的要求处理是很简单的:
select a_fse from A where 1>2 into temp a_tmp;
drop table A;
create table A
(
    jrownum          integer            not null ,
    itemname         varchar(200)                ,
    a                decimal(16,2)               ,
    organno          varchar(30)               ,
    createdate       timestamp                   ,
    reportdate       timestamp                   ,
    modifydate       timestamp                   ,
    curr_type      varchar(10)               ,
    repgran          varchar(10)               ,
    b                decimal(16,2)               ,
    a_fse            decimal(16,2)               ,
    b_fse            decimal(16,2)               
)

insert into a (a_fse) select a_fse from a_tmp;
页: [1]
查看完整版本: 关于informix创建临时表并且备份某一字段的方法,急求!!!