程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 5.0觸發器參考教程第1/4頁

MySQL 5.0觸發器參考教程第1/4頁

編輯:MySQL綜合教程

MySQL 5.0觸發器參考教程第1/4頁。本站提示廣大學習愛好者:(MySQL 5.0觸發器參考教程第1/4頁)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL 5.0觸發器參考教程第1/4頁正文


Conventions and Styles商定和編程作風
  每次我想要演示現實代碼時,我會對mysql客戶真個屏幕就湧現的代碼停止調劑,將字體改成Courier,使他們看起來與通俗文本紛歧樣(讓年夜家差別法式代碼和注釋)。在這裡舉個例子:

mysql> DROP FUNCTION f;
Query OK, 0 rows affected (0.00 sec)
  假如實例比擬年夜,則須要在某些行和段落間加正文,同時我會用將"<--"符號放在頁面的左邊以表現強調。例如:

mysql> CREATE PROCEDURE p ()
-> BEGIN
-> /* This procedure does nothing */ <--
-> END;//
Query OK, 0 rows affected (0.00 sec)
  有時刻我會將例子中的"mysql>"和"->"這些體系顯示去失落,你可以直接將代碼復制到mysql客戶端法式中(假如你如今所讀的不是電子版的,可以在mysql.com網站下載相干劇本)

  所以的例子都曾經在Suse 9.2 Linux、Mysql 5.0.3公共版上測試經由過程。在您浏覽本書的時刻,Mysql曾經有更高的版本,同時能支撐更多OS了,包含Windows,Sparc,HP-UX。是以這裡的例子將能正常的運轉在您的電腦上。但假如運轉依然湧現毛病,可以征詢你熟悉的資深Mysql用戶,如許就可以獲得比擬好的支撐和贊助。

  Why Triggers 為何要用觸發器

  我們在MySQL 5.0中包括對觸發器的支撐是因為以下緣由:

  MySQL晚期版本的用戶歷久有須要觸發器的請求。

  我們已經承諾支撐一切ANSI尺度的特征。

  您可使用它來檢討或預防壞的數據進入數據庫。

  您可以轉變或許撤消INSERT, UPDATE和DELETE語句。

  您可以在一個會話中監督數據轉變的舉措。


  在這裡我假定年夜家都讀過"MySQL新特征"叢書的第一集--"MySQL存儲進程",那末年夜家都應當曉得MySQL至此存儲進程和函數,那是很主要的常識,由於在觸發器中你可使用在函數中應用的語句。特殊舉個例子:

  復合語句(BEGIN / END)是正當的.

  流掌握(Flow-of-control)語句(IF, CASE, WHILE, LOOP, WHILE, REPEAT, LEAVE,ITERATE)也是正當的.

  變量聲明(DECLARE)和指派(SET)是正當的.

  許可前提聲明.

  異常處置聲明也是許可的.

  然則在這裡要記住函數有受限前提:不克不及在函數中拜訪表.是以在函數中應用以下語句長短法的。

ALTER 'CACHE INDEX' CALL COMMIT CREATE DELETE
  DROP 'FLUSH PRIVILEGES' GRANT INSERT KILL
  LOCK OPTIMIZE REPAIR REPLACE REVOKE
  ROLLBACK SAVEPOINT 'SELECT FROM table'
  'SET system variable' 'SET TRANSACTION'
  SHOW 'START TRANSACTION' TRUNCATE UPDATE
  在觸發器中也有完整一樣的限制.

  觸發器絕對而言比擬新,是以會有(bugs)缺點.所以我在這裡給年夜家正告,就像我在存儲進程書中所說那樣.不要在含有主要數據的數據庫中應用這個觸發器,假如須要的話在一些以測試為目標的數據庫上應用,同時在你對表創立觸發器時確認這些數據庫是默許的。
以後1/4頁 1234下一頁浏覽全文
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved