C SQLite序列操作實現方法詳解

2022-09-26 04:09:09 字數 1713 閱讀 7990

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方法,用於在列表末尾一次性追加來乙...