表A为会员资料表
表B为会员使用特殊功能系统的次数纪录表(纪录会员操作功能系统成功的次数纪录表)表A 字段 Char_S
表B 字段 Char_S
两个资料表下都有Char_S字段,是对应的相同编号
为了避免表B内有重覆资料,如何判断表B资料表内没有该会员资料后新增一笔资料的語法?
表B为会员使用特殊功能系统的次数纪录表(纪录会员操作功能系统成功的次数纪录表)表A 字段 Char_S
表B 字段 Char_S
两个资料表下都有Char_S字段,是对应的相同编号
为了避免表B内有重覆资料,如何判断表B资料表内没有该会员资料后新增一笔资料的語法?
insert into 表B(列1,列2 .....)
select 对应的列1,列2 from 表A a
where not exists(select 1 from 表B b where b.Char_s = a.Char_s
and b.用户ID = a.用户ID )
--#2.如果单线程,多次插入或更新,插入前用exists来判断即可
--#3.如果多线程多次插入或更新,可用锁表,主键异常捕获,辅助表等方式解决。最简单的就是用主键TRY CATCH,就是说把Char_S字段设置为主键或唯一索引,如果用exists没有控制住,就只能在try.catch.中处理。
(
Char_S
)
SELECT
Char_S
FROM 表A a
WHERE NOT EXISTS(SELECT 1 FROM 表B WHERE Char_s = a.Char_s)
-------------
B表的记录按照你的定义,Char_S字段本来就应该有重复的记录?
而且你这样做也避免不了B内没有重复的资料