作者pili100 (zelda)
看板Database
标题[access]资料不存在则插入
时间Mon Jun 12 17:00:03 2017
请教版上大神
我使用的access是2010
假设有一张表A
里面有资料1,2,3,4,5
五笔资料
我想要插入6,这笔资料
如果资料已存在就不插入
google到的语法都是
insert into A(field)
select * from B
where not exists
(select 1 from A where field = '6')
差不多都是这样
问题来了
我的资料并不是存在表B
而是从程式中喂进去的
我如果用insert into value这语法
access回报语法错误
我该怎麽写才对啊!
--
最近看到的签名档,拿来借用,不晓得会不会犯了智产权?
西医治标
中医治本
中西合璧
治成标本
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.209.145
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1497258008.A.975.html
1F:→ rul3nk41: INSERT INTO A SELECT '%s' FROM dual WHERE not exists 06/13 10:44
2F:→ rul3nk41: (select * from A where field = '6') 06/13 10:44
3F:→ rul3nk41: 不知道是不是你要的需求 06/13 10:45
4F:→ flowwinds: INSERT INTO A(f1,f2,f3) SELECT v1,v2,v3 FROM B 06/13 14:08
5F:→ flowwinds: WHERE NOT EXISTS (SELECT ..) f1表field1,v1表value1 06/13 14:09
6F:→ flowwinds: v1是table B的field name 06/13 14:10
7F:→ flowwinds: 看错问题..INSERT INTO A(f1,f2,f3) VAULES(v1,v2,v3) 06/13 14:12
8F:→ flowwinds: WHERE NOT EXISTS(SELECT 1 FROM A WHERE..) 06/13 14:13
9F:→ flowwinds: 之前错了, 应该是 06/13 14:17
10F:→ flowwinds: INSERT INTO A(f1,f2,f3) SELECT v1,v2,v3 WHERE NOT 06/13 14:18
11F:→ flowwinds: EXISTS(SELECT 1 FROM A WHERE ..); 这样才对 06/13 14:18
谢谢版上大神意见
後来有查到
第二段改成
select distinct * from B
B是存在的表
这样可以完成要求
※ 编辑: pili100 (118.163.209.145), 06/13/2017 16:00:39