【发布时间】:2013-07-10 21:03:05
【问题描述】:
PHP mysqli 存储过程快速指南,http://php.net/manual/en/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 连接期间调用的过程的全部意义吗?
【问题讨论】:
-
AFAIK 删除该过程(如果存在)并从头重新创建它是它在所有 SQL 数据库系统中的工作方式。
-
你知道为什么必须放弃它吗?这只是一个好习惯吗?如果是,为什么?
-
我想这样做会更简单,而不是有一些复杂的编辑机制。通常,您不会在每次建立 MySQL 连接时都创建存储过程。你把你的存储过程放在那里一次,然后把它们放在那里,除非它们改变。
-
在 Oracle 中,语法包括 CREATE OR REPLACE - 所以从技术上讲不是删除和重新创建。
标签: php mysql stored-procedures mysqli