sequence與connect by的應用

2021-05-25 02:58:35 字數 1020 閱讀 1087

1.users是使用者表,userid是從sequence得到的唯一序號,作為主鍵,下面的觸發器方便每次插入分配唯一的序列,其他表也可以參考於此.

create or replace trigger users_trig

before insert on users

for each row

declare

seq_val number;

begin

select s_userid.nextval

into seq_val from dual;

:new.userid := seq_val;

end;

2.org是部門表,其中orgid是當前部門id,porgid是上級目錄id,像這種有父子關係的表中做從某一部門向上或向下的查詢用到了oracle的connect by語句:

select * from org connect by prior orgid=porgid start with orgid=1

//從部門id為1的部門尋找所有子部門

select * from org connect by prior porgid=orgid start with orgid=1

//從部門id為1的部門尋找所有父部門

3.使用者,角色,許可權關係處理角色表裡有角色的模組許可權,用1和0表示,1表示有,0表示無,如果系統有10 個模組,則每一角色的許可權用10位的01來表示,使用者被賦予角色,乙個使用者可以有多個角色,相對與使用者的許可權就是所有它擁有角色的許可權欄位做與操作的結果.

strsql = "select substr(power," & modid & ", 1) as rightbit from role where roleid in(select roleid from role_user where userid in(select userid from users where loginname='" & strloginname & "'))"

//列出了當前使用者所擁有角色對當前模組的許可權結果集中如果有1則使用者有許可權,如果全為0則沒有許可權.

Linux socket非阻塞connect方法

socket non blocking mode connect 對於面向連線的socket型別 sock stream,sock seqpacket 在讀寫資料之前必須建立連線,connect 函式用於完成面向連線的socket的建鏈過程,對於tcp,也就是三次握手過程。connect 函式 標頭...

SYS GUID 與sequence的比較

sys guid 與sequence的比較 序列生成器sequence所生成的數字只能保證在單個例項裡是唯一的,這就不適合將它用作並行或者遠端環境裡的主關鍵字,因為各自環境裡的序列可能會生成相同的數字,從而導致衝突的發生。sys guid會保證它建立的識別符號在每個資料庫裡都是唯一的。此外,序列必須...

SYS GUID 與sequence的比較

sys guid 與sequence的比較 序列生成器sequence所生成的數字只能保證在單個例項裡是唯一的,這就不適合將它用作並行或者遠端環境裡的主關鍵字,因為各自環境裡的序列可能會生成相同的數字,從而導致衝突的發生。sys guid會保證它建立的識別符號在每個資料庫裡都是唯一的。此外,序列必須...