[英]how to create a stored procedure in mysql the right way
有關存儲過程的PHP mysqli快速指南, http ://php.net/manual/zh/mysqli.quickstart.stored-procedures.php:
if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
!$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
這是否不刪除程序然后替換呢? 這是正確的方法嗎? 刪除它有什么意義? 刪除它不會否定擁有可以在MySQL連接期間調用的過程的全部意義嗎?
您必須先刪除“舊”過程,否則創建將失敗,並顯示“已經存在”錯誤。 數據庫中幾乎每個對象都是相同的,例如
CREATE TABLE foo ... // creates the table
CREATE TABLE foo ... // will **NOT** replace the one just created
您不能僅通過重新定義來“覆蓋”表/ proc / db。 您必須先刪除原始的。
考慮一下如果一家大型銀行的一些不良DBA意外運行會發生的混亂情況
CREATE DATABASE clients;
並浪費了他們的整個客戶數據庫,因為數據庫引擎用這個新的空數據庫替換了原來的數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.