作者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/m.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