MySQL存儲過程和數(shù)據(jù)庫的聯(lián)系
MySQL存儲過程是我們經(jīng)常要用到的,下面就對MySQL存儲過程和數(shù)據(jù)庫的聯(lián)系進(jìn)行詳盡的闡述,如果您對MySQL存儲過程方面感興趣的話,不妨一看。
一.要把一個表從一個類型轉(zhuǎn)到另一個類型,可使用ALTER TABLE語句,這個語句指明新的類型:
ALTER TABLE t ENGINE = MYISAM;
ALTER TABLE t TYPE = BDB;
二.MySQL存儲過程:
下面一些情況下MySQL存儲程序尤其有用:
1.當(dāng)用不同語言編寫多客戶應(yīng)用程序,或多客戶應(yīng)用程序在不同平臺上運(yùn)行且需要執(zhí)行相同的數(shù)據(jù)庫操作之時。
2.安全極為重要之時。比如,銀行對所有普通操作使用存儲程序。這提供一個堅固而安全的環(huán)境,程序可以確保每一個操作都被妥善記入日志。在這樣一個設(shè)置中,應(yīng)用程序和用戶不可能直接訪問數(shù)據(jù)庫表,但是僅可以執(zhí)行指定的存儲程序。 存儲程序和函數(shù)是用CREATE PROCEDURE和CREATE FUNCTION語句創(chuàng)建的子程序。一個子程序要么是一個程序要么是一個函數(shù)。使用CALL語句來調(diào)用程序,程序只能用輸出變量傳回值。就像別其它函數(shù)調(diào)用一樣,函數(shù)可以被從語句外調(diào)用(即通過引用函數(shù)名),函數(shù)能返回標(biāo)量值。存儲子程序也可以調(diào)用其它存儲子程序。
在MySQL 5.1中,一個存儲子程序或函數(shù)與特定的數(shù)據(jù)庫相聯(lián)系。這里有幾個意思:
1. 當(dāng)一個子程序被調(diào)用時,一個隱含的USE db_name 被執(zhí)行(當(dāng)子程序終止時停止執(zhí)行)。存儲子程序內(nèi)的USE語句時不允許的。
2. 你可以使用數(shù)據(jù)庫名限定子程序名。這可以被用來引用一個不在當(dāng)前數(shù)據(jù)庫中的子程序。比如,要引用一個與test數(shù)據(jù)庫關(guān)聯(lián)的存儲程序p或函數(shù)f,你可以說CALL test.p()或test.f()。
3. 數(shù)據(jù)庫移除的時候,與它關(guān)聯(lián)的所有存儲子程序也都被移除。
【編輯推薦】
教您如何實現(xiàn)MySQL數(shù)據(jù)庫備份及恢復(fù)