0
我有4列(ID(自動根),IP,日期,訪問)插入或更新SQLite中
前一個簡單的表:
1,'10 .10.0.10' ,「2017- 03-01',1
我正在尋找插入或更新SQLite需要檢查IP &日期列,如果存在更新訪問+1否則插入一個新行。
我可以發出2個SQL,但想保留在1個SQL中。
這是可能的SQLite嗎?
我有4列(ID(自動根),IP,日期,訪問)插入或更新SQLite中
前一個簡單的表:
1,'10 .10.0.10' ,「2017- 03-01',1
我正在尋找插入或更新SQLite需要檢查IP &日期列,如果存在更新訪問+1否則插入一個新行。
我可以發出2個SQL,但想保留在1個SQL中。
這是可能的SQLite嗎?
如果您生成IP和日期的潮頭指數可以使用insert or replace
語句分兩個步驟來實現:
執行insert or replace
IP和日期(我用在這個例子中命名的參數,你需要將它們綁定到適當值):
insert or replace into Visits (id, ip, date, visits)
values (NULL, :ip, :date, :visits + 1);
您可以將表contstraint增加創建唯一索引就像下面這個例子,或者你使用一個單獨的create unique index
聲明:
create table Visits (..., unique (ip, date));
附錄:甚至還有更新一個訪問次數的可能性查詢:
insert or replace into Visits (id, ip, date, visits)
select NULL, :ip, :date, ifnull(max(visits), 0) + 1
from Visits
where ip = :ip and date = :date;