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