起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 243|回复: 10

[请求]数据插入问题**

[复制链接]
发表于 2008-11-5 14:18:51 | 显示全部楼层 |阅读模式
将一个表的数据,插入到另一个表中。这个插入语句要怎么写呢?
回复

使用道具 举报

发表于 2008-11-5 14:26:39 | 显示全部楼层
形如
insert into tabale(zd1,zd2) select zd1,zd2 from table
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 14:28:39 | 显示全部楼层
能说得具体点吗?哪个是新表,哪个是原表?
回复 支持 反对

使用道具 举报

发表于 2008-11-5 14:52:26 | 显示全部楼层
insert into 新表(zd1,zd2) select zd1,zd2 from 旧表
回复 支持 反对

使用道具 举报

发表于 2008-11-5 14:53:07 | 显示全部楼层
2楼的意思是在 tabale表中插入一条记录,字段值来源于table,楼主可以看看数据库的SQL语法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 14:57:01 | 显示全部楼层
哦,这个我知道了,谢谢,那还有一个问题就是,如果新表已经有旧表的数据了,为了避免违反唯一约束,怎么处理?
回复 支持 反对

使用道具 举报

发表于 2008-11-5 15:06:09 | 显示全部楼层
那就这样子啊
insert into 新表(zd1,zd2) select zd1,zd2 from 旧表 where not exists (select 关键字 from 新表)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 15:16:42 | 显示全部楼层
with qryht do
  begin
    close;
    commandtext:=' insert into dye_pricemain(guid,startdate,enddate,pmonth,createname,createdate) '
                +' select guid,startdate,enddate,stockmonth,operator,operatordate from dye_stockmain '
                +' where not exists(select pmonth from dye_pricemain) and stockmonth='+sysutils.QuotedStr(stockmonth);

    open;
  end;
这样写对吗?怎么运行的时候会出错?
回复 支持 反对

使用道具 举报

发表于 2008-11-5 15:19:22 | 显示全部楼层
你看看你的sql语句能在数据库环境中执行吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 15:25:53 | 显示全部楼层
在数据环境中是可以执行,但是数据没有插入成功,显示插入0行!但是新表中确实没存在要插入的这个数据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-25 23:38 , Processed in 0.039986 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表