當前位置:首頁 » 存儲配置 » 存儲過程和觸發器實驗

存儲過程和觸發器實驗

發布時間: 2022-08-12 23:04:20

存儲過程和觸發器的區別和聯系。

我的理解:主要是使用場合不同,還有就是觸發器中不能使用commit(這個應該是約定而不是規定)
存儲過程相當於打包好的sql語法,可以包含復雜的sql操作,在程序調用時只要執行該存儲過程,一句話就可以完成復雜的資料庫操作.
觸發器是也是打包好的sql語法,是一種特殊類型的存儲過程,不由用戶直接調用。創建觸發器時會對其進行定義,以便在對特定表或列作特定類型的數據修改時執行
另外:觸發器相對一般的存儲過程也多了一些在代碼編寫方面的不同,比如說create
trigger
必須是批處理中的第一條語句,並且只能應用到一個表中等等.具體的可以看一下觸發器的說明;http://ke..com/view/1189954.htm

Ⅱ 存儲過程和觸發器

PROCEDURE
p_book1
PROCEDURE p_book2
書名='大學英語'
EXEC p_book2
圖書編號=@x
'001105'
varchar(20)
書籍表 where 書名=@c1
EXEC p_book4 '大學語文'

Ⅲ 存儲過程與觸發器的區別

觸發器與存儲過程非常相似,觸發器也是SQL語句集,兩者唯一的區別是觸發器不能用EXECUTE語句調用,而是在用戶執行Transact-SQL語句時自動觸發(激活)執行。觸發器是在一個修改了指定表中的數據時執行的存儲過程。通常通過創建觸發器來強制實現不同表中的邏輯相關數據的引用完整性和一致性。由於用戶不能繞過觸發器,所以可以用它來強制實施復雜的業務規則,以確保數據的完整性。觸發器不同於存儲過程,觸發器主要是通過事件執行觸發而被執行的,而存儲過程可以通過存儲過程名稱名字而直接調用。當對某一表進行諸如UPDATE、INSERT、DELETE這些操作時,SQLSERVER就會自動執行觸發器所定義的SQL語句,從而確保對數據的處理必須符合這些SQL語句所定義的規則。

Ⅳ 存儲過程與觸發器的區別和聯系

我的理解:主要是使用場合不同,還有就是觸發器中不能使用commit(這個應該是約定而不是規定)
存儲過程相當於打包好的sql語法,可以包含復雜的sql操作,在程序調用時只要執行該存儲過程,一句話就可以完成復雜的資料庫操作.

Ⅳ 如何測試mysql觸發器和存儲過程

1.
為了測試觸發器和存儲過程,首先建立一張簡單的表:
復制代碼
代碼如下:
CREATE
TABLE
`airuser`
(
`userId`
int(11)
NOT
NULL
AUTO_INCREMENT,
`username`
varchar(128)
NOT
NULL,
PRIMARY
KEY
(`userId`)
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8
2.
為該表的插入操作,創建一張記錄表:
復制代碼
代碼如下:
CREATE
TABLE
`airuser_record`
(
`id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`username`
varchar(45)
DEFAULT
NULL,
`edittime`
timestamp
NULL
DEFAULT
NULL,
`edittype`
varchar(45)
DEFAULT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8
3.
編寫一個插入操作的觸發器:
復制代碼
代碼如下:
DROP
TRIGGER
insert_trigger;
delimiter
|
CREATE
TRIGGER
insert_trigger
BEFORE
INSERT
ON
airuser
FOR
EACH
ROW
BEGIN
INSERT
INTO
airuser_record
SET
username
=
NEW.username,
edittime=now(),
edittype='insert';
END;
SHOW
TRIGGERS;
4.
為批量插入編寫存儲過程:
復制代碼
代碼如下:
DROP
procere
createUsers;
delimiter
|
create
procere
createUsers(IN
count
int)
begin
declare
i
int;
set
i=0;
while
i<count
do
insert
into
airuser
set
username=concat('user_',i);
set
i=i+1;
end
while;
end;
show
procere
status;
5.
調用存儲過程,驗證存儲過程是工作的,並驗證在插入記錄前,觸發器能正確被觸發:
復制代碼
代碼如下:
call
createUsers(10);
6.
最後通過插入記錄表再次驗證:
復制代碼
代碼如下:
SELECT
*
FROM
mars_jpa.airuser_record;

Ⅵ 簡單說說存儲過程與觸發器的概念與作用

存儲過程就是一個sql的程序集 可以包含多個SQL語句 並可以附帶各種邏輯判斷及處理

觸發器 就類似於程序里的事件觸發
只是這里通常是某個欄位的改變 某個表插入了數據 或者刪除某些數據
以上這些處理引發的另外一些表數據的改變

Ⅶ 請問存儲過程與觸發器關系

存儲過程需要調用才執行裡面的sql語句。觸發器是設置好觸發條件,條件達到時自動運行裡面的sql語句,比如對a表進行更新(update)操作時,相應的觸發器就會運行。

熱點內容
遞歸sql語句 發布:2025-01-08 11:31:50 瀏覽:706
laravel緩存文件 發布:2025-01-08 11:31:46 瀏覽:631
怎麼看macbook配置信息 發布:2025-01-08 11:27:40 瀏覽:59
python帶路徑的文件 發布:2025-01-08 11:23:22 瀏覽:711
如何把手機內容存儲 發布:2025-01-08 11:09:34 瀏覽:245
三星聯系人存儲程序停止 發布:2025-01-08 11:09:26 瀏覽:424
qq編程語言 發布:2025-01-08 11:04:26 瀏覽:39
安卓系統玩的王者榮耀怎麼轉蘋果 發布:2025-01-08 11:02:21 瀏覽:850
走馬燈編程 發布:2025-01-08 10:57:23 瀏覽:921
廣州移動的服務密碼是多少位數 發布:2025-01-08 10:57:20 瀏覽:775