簡體   English   中英

如何以正確的方式在mysql中創建存儲過程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM