各位大侠好,小弟又有SQL 的问题来叨扰大家了...
@ti_id,@proc_id,@mac_id 是随游标变化的变量
t_ring 表结构为(sub_ring_id,........),其中sub_ring_id为主键
t_pmpt_cp表结构为(sub_ring_id,mac_id,proc_id,ti_id)
==========================游标循环开始===================================
@ti_id,@proc_id,@mac_id 被赋值
- SQL code
insert into t_pmpt_cp select sub_ring_id ,@mac_id,,@proc_id,@ti_id from t_ring where 1 = 1 and ( (select COUNT(1) as num from t_pmpt_cp where sub_ring_id = sub_ring_id and proc_id = @proc_id and mac_id = @mac_id and ti_id = @ti_id )<1)
==========================游标循环结束===================================
我想在一条语句内实现,插入t_pmpt_cp表之前先判断是否存在当前记录,这种写法似乎有问题...
大家有建议吗
------解决方案--------------------
- SQL code
insert into t_pmpt_cp select sub_ring_id ,@mac_id,,@proc_id,@ti_id from t_ring awhere not exists(select 1 form t_pmpt_cp where id=a.sub_ring_id --假设以id列作比较,如果有ID相同则为存在 and ( (select COUNT(1) as num from t_pmpt_cp where sub_ring_id = sub_ring_id and proc_id = @proc_id and mac_id = @mac_id and ti_id = @ti_id )<1)