sqlite 不能直接建立自定義函式,不能像 sql server中那樣方便建立並使用。不過我們照樣可以建立它,建立成功後,我們照樣可以隨心所欲(比如批量更新等)
序列是乙個資料庫中很常用的操作,在其它關係型資料庫建立是相當簡單的,但sqlite不是很方便,因為它不能直接建立自定義函式
1.先建立乙個表示序列的表:
create table sequence (
seq_name varchar(50) not null,
min_val decimal(12,0) not null,
current_val decimal(12,0) not null,
max_val decimal(12,0) not null default 1,
increment int not null default 1,
primary key (seq_name)
);定義序列的最小值、最大值、步長、序列的名稱以及當前值
2.建立觸發器
create trigger [seq_reset_trg]
after update
on [sequence]
for each row
begin
update sequence set current_val=min_val where current_val-increment>=max_val;
end;
當當前值大於最大值時,重置為最小vkflonfi值,達到序號迴圈使用的目的。
在c#中使用**建立函式,sqlitehelper 是訪問sqlite的公共類庫,在前面的文章《c#操作sqlite資料庫幫助類詳解》中有介紹。
3.獲取當前序列值
[sqlitefunction(name = "getcurrentvalue", arguments = 1, functype = functiontype.scalar)]
public class getcurrentvalue : sqlitefunction
}4.獲取下乙個序列值
[sqlitefunction(name = "getnextvalue", arguments = 1, functype = functiontype.scalar)]
public class getnextvalue : sqlitefunction
')",args[0].tostring()),null);}}
5.設定當前序列值
[sqlitefunction(name = "setvalu程式設計客棧e", arguments = 2, functype = functiontype.scalar)]
public class setvalue : sqlitefunction
')", args[0].tostring()), null);}}
6.測試:
在序列表sequence中新增一行資料
定義序列名稱為purchase_in_order,最小值www.cppcns.com為2000,當前值為2000,最大值值為9999,步長為1.
執行語句:
string sql = string.format("select getnextvalue('purchase_in_order')");
sqlitehelper.executenonquery(sql,null);
去資料庫中檢視當前值是否增加
C SQlite 操作小結
對擴平台的微型資料庫sqlite 進行使用了,主要注意一點是 資料庫若未建立則使用 sqliteconnection.createfile databasename 資料庫已經建立,並要進行訪問 sqliteconnection m conn new sqliteconnection datasou...
python序列操作 序列操作
toc 序列操作 all 判斷可迭代物件的每個元素是否都為true值 all 1,2 列表中每個元素邏輯值均為true,返回true true all 0,1,2 列表中0的邏輯值為false,返回false false all 空元組 true all 空字典 true any 判斷可迭代物件的元...
Python 序列之列表的操作方法
python為列表提供幾個方法,用於檢查或者修改列表內容。x 1,2,3 x 1,2,3,4 2.count方法,用於統計某個元素在列表中出現的次數 x 1,2,1,2 1 x.count 1 2 x.count 1,2 1 x.count 6 0 3.extend方法,用於在列表末尾一次性追加來乙...