SQL 插入之前怎么判断数据库已经存在 10
要求从数据库A中将一张表全部插入另一数据库B中但是A数据库一段时间将会更新所以要多次从数据库A中的数据导入到B中所以怎么才能判断上一次导入的已经在数据可B中存在不用再次导...
要求从数据库A中 将一张表全部插入另一数据库B中 但是A数据库一段时间将会更新 所以要多次从数据库A中的数据导入到B中 所以怎么才能判断上一次导入的已经在数据可B中存在 不用再次导入呢 在两个数据库中 数据库A中的列名为C的要导入到数据库B中列名为D中 也就是说可以用数据库A中的列名C与数据库中的列名D来判断是不是数据库B中已经存在 求语句~~~
use A
insert into t_bd_item_info
(item_no,item_subno,item_name,item_subname,item_clsno,price,base_price,sale_price,main_supcust,other3,direct)
select
item_no,item_subno,item_name,item_subname,item_clsno,price,base_price,sale_price,main_supcust,other3,direct
from B.bi_t_item_info
如上 我想每次在插入之前 都判断下在B中的 item_no是否在A中已经存在同样的item_no 如果存在则掠过 如果不存在则插入~~~ 展开
use A
insert into t_bd_item_info
(item_no,item_subno,item_name,item_subname,item_clsno,price,base_price,sale_price,main_supcust,other3,direct)
select
item_no,item_subno,item_name,item_subname,item_clsno,price,base_price,sale_price,main_supcust,other3,direct
from B.bi_t_item_info
如上 我想每次在插入之前 都判断下在B中的 item_no是否在A中已经存在同样的item_no 如果存在则掠过 如果不存在则插入~~~ 展开
4个回答
展开全部
首先要说明的是,可以用一条语句实现你的要求,但是这条语句的使用效率非常低,如果数据量大,运行就非常的慢。具体语法如下:
insert into B_table
(f1,f2,f3...,D)
select F1,F2,F3,...C from A_table where C not in (select D from b_table);
此句实现的就是A中C列不在B中D列的数据都写入B中,但效率低。
如果可能,建议在A中增加一个标志位,标志是否已经写入过B,而且此标志位要做索引。
insert into B_table
(f1,f2,f3...,D)
select F1,F2,F3,...C from A_table where C not in (select D from b_table);
此句实现的就是A中C列不在B中D列的数据都写入B中,但效率低。
如果可能,建议在A中增加一个标志位,标志是否已经写入过B,而且此标志位要做索引。
展开全部
让两个数据库能直接建立分布式数据库并入同一个事务那就简单了,像 oracle 有 Database Link 能做到。DB2 也有类似的方式。
insert into B.Table2 (D)
select C
from A.Table1 a
left join B.Table2 b on a.C = b.D
where b.D is null
;
insert into B.Table2 (D)
select C
from A.Table1 a
left join B.Table2 b on a.C = b.D
where b.D is null
;
追问
这样的话 如果在数据库B中的数据我已经修改 如果再次执行的话 不都又从数据库B中更新过来了么?
追答
那你这个 B.item_no 还允许修改的?一般是不变的且唯一的作为 key 来判断才合适啊。会变的这个东西你怎么能判断它是本来就不存在还是复制过来之后被改了item_no 啊。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into B (name1,name2) values(select A.name1,A.name2 from A,B where A.id!=B.id)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-18
展开全部
同意楼上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询