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

來源:互聯網
上載者:User

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)缺陷.所以我在這裡給大家警告,就像我在預存程序書中所說那樣.不要在含有重要資料的資料庫中使用這個觸發器,如果需要的話在一些以測試為目的的資料庫上使用,同時在你對錶建立觸發器時確認這些資料庫是預設的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.