我试图在MySQL中使用这样的分隔符创建一个存储过程:
use am;
DELIMITER $$
CREATE PROCEDURE addfields()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE acc INT(16);
DECLARE validId INT DEFAULT 0;
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误:
#1304 - PROCEDURE addfields already exists
Run Code Online (Sandbox Code Playgroud)
使用分隔符创建存储过程并在首先存在时删除它的正确语法是什么?
我有一个简单的 HTML 表单和一些 php 变量,如下所示,使用 submit 方法将书籍详细信息提交到名为 Book 的 MySQL 表。clcode 是一个自动递增字段。
$isbn =$_POST["isbn"];
$bno =$_POST["b_no"];
$bname =$_POST["b_name"];
$qty =$_POST["qty"];
$price =$_POST["price"];
Run Code Online (Sandbox Code Playgroud)
并且需要根据数量插入记录。例如:- 如果数量 = 2,则需要执行两次插入查询(应该插入 2 条具有自动增量 clcodes 的相同记录)。如果数量 = 5,则需要执行插入查询 5 次(应该插入 5 条具有自动增量 clcodes 的相同记录)等等......我使用了一个存储过程和以下 SQL 查询来做到这一点。
$query ="CREATE PROCEDURE myproc()
BEGIN
DECLARE i int DEFAULT 0;
DO
INSERT INTO book (isbn, b_no, b_name, qty, price) VALUES ('$isbn', '$bno', '$bname', '$qty', '$price');
SET i = i + 1;
WHILE i < $qty;
END WHILE;
END";
$result = …Run Code Online (Sandbox Code Playgroud)