相关疑难解决方法(0)

MySQL使用分隔符创建存储过程语法

我试图在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)

使用分隔符创建存储过程并在首先存在时删除它的正确语法是什么?

mysql sql stored-procedures

36
推荐指数
2
解决办法
13万
查看次数

MySQL用while循环插入多条记录

我有一个简单的 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)

php mysql

1
推荐指数
2
解决办法
2万
查看次数

标签 统计

mysql ×2

php ×1

sql ×1

stored-procedures ×1