繁体   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