免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4214 | 回复: 6
打印 上一主题 下一主题

关于informix创建临时表并且备份某一字段的方法,急求!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-25 12:58 |只看该作者 |倒序浏览
我有张表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.

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2010-02-25 13:04 |只看该作者
也就是说a_tmp表中仅有a_fse一个字段有值??

论坛徽章:
0
3 [报告]
发表于 2010-02-25 13:08 |只看该作者
回复 2# liaosnet
A_tmp的结构和A表是完全一样的,只是a_fse是我关注的数据而已,别的数据不用理会~

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2010-02-25 13:10 |只看该作者
回复  liaosnet
A_tmp的结构和A表是完全一样的,只是a_fse是我关注的数据而已,别的数据不用理会~
无间炼狱 发表于 2010-02-25 13:08



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

论坛徽章:
0
5 [报告]
发表于 2010-02-25 13:13 |只看该作者
回复 4# liaosnet
其实主要是因为A表会被删除并且重新创建,而我希望保留住A表在删除之前A表中的a_fse字段中的值,等到A表被删除之后重新新建之后重新把原来A表中的a_fse字段中的数据再给它恢复过去,该怎么办呢?

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2010-02-25 13:40 |只看该作者
回复 5# 无间炼狱


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

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

论坛徽章:
0
7 [报告]
发表于 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;
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP