Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >错误过程MYSQL

错误过程MYSQL
EN

Stack Overflow用户
提问于 2015-11-26 11:28:50
回答 1查看 26关注 0票数 0

我在一个兽医诊所的数据库里建立了一个程序。

该程序应为每只正在服用的特定动物添加10包药物(该动物由id (“动物”)识别,即程序的输入参数),且在临床中不存在的数量超过5个包。(表“PhysicalDrug”中有临床使用的药物包装。)

换句话说,表中的“处方”中的所有药物都是给那些列“End_date”为空或将来是零的动物开的,而且在诊所里几乎没有包装。

我所做的程序只适用于第一张尊重上面列出的条件的记录,但是跳过了其他的,我不知道为什么,你能帮我吗?非常感谢!(对不起,我英语不好,>.<)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  CREATE PROCEDURE add_Drug(IN animal INTEGER)
  BEGIN
    DECLARE Code VARCHAR(30);
    DECLARE i, eof INT DEFAULT 0;

    DECLARE cdrugs CURSOR FOR 
      SELECT P.Code_drug 
        FROM   Prescription P
        WHERE  P.Id_animal = animal
          AND (P.End_date IS NULL OR P.End_date >= CURDATE());

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET eof = 1;

    # the function counter returns the greater id of the table PhysicalDrug incremented by one
    SET @Id = counter();
    OPEN cdrugs;
    read_loop: LOOP
      FETCH cdrugs INTO Code;
      IF eof = 1 THEN
        LEAVE read_loop;
      END IF;
      #Memorize the number of units of the drug present in the clinic 
      SET @NumberDrug =
        (SELECT COUNT(*) 
          FROM PhysicalDrug
          WHERE Code_drug = Code);
      IF @NumberDrug < 5 THEN
        WHILE i < 10 DO
          INSERT INTO PhysicalDrug (Id, Code_drug)
            VALUES (@Id, Code);
          SET i = i + 1;
          SET @Id = @Id + 1;
        END WHILE;
      END IF;
    END LOOP;
    CLOSE cdrug;
  END //
  DELIMITER ;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-26 12:55:12

代码的重新格式化揭示了答案:在头10次遍历i.之后,您的永远不会重置计数器在此之后,i < 10始终是假的,因此您再也不会进入INSERT循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33945818

复制
相关文章
记一次Navicat for MySQL 10060错误的解决过程
最近加班挺多,所以也好久没远程访问自己云服务器上的MySQL数据库了。今天本地启动Node服务时连不上MySQL,照常用Navicat For MySQL连接远程数据库进行检查,结果发现突然报错了。
程序员白彬
2020/07/10
9.4K1
记一次Navicat for MySQL 10060错误的解决过程
MySQL:binlog复制过程中的错误跳过机制及其应用
MySQL是一种广泛使用的关系数据库管理系统,提供了强大的数据复制功能,以确保数据的可靠性和一致性。然而,在复制过程中可能会遇到某些错误,这些错误可能会中断复制进程,影响到系统的正常运行。为了应对这种情况,MySQL提供了一种机制,允许我们在从服务器上跳过特定的错误,从而保持复制的连续性。在本文中,我们将探讨这种机制,以及如何在实践中应用它。
运维开发王义杰
2023/10/23
6040
MySQL:binlog复制过程中的错误跳过机制及其应用
MySQL的存储过程_MySQL创建存储过程
在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢?
全栈程序员站长
2022/11/08
22.3K0
MySQL的存储过程_MySQL创建存储过程
MySQL:MySQL 存储过程
  <1>存储过程一旦调试完成后,就可以稳定运行,(前提是,业务需求要相对稳定,没有变化)
全栈程序员站长
2022/09/06
16.1K0
MySQL:MySQL 存储过程
实现MySQL高可用之MHA过程错误记录集
MHA 集群是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。目前在 MySQL 高可用方面是一个相对成熟的解决方案 ,在 MySQL 故障切换过程中,MHA 能做到在 0~30 秒之内自动完成数据库的故障切换操作并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
肓己
2021/08/12
1.2K0
MySQL1054错误_mysql错误代码1064
Duplicate entry ‘…’ for key ‘PRIMARY,即插入数据时,要插入数据的主键数据(…)已经存在,不能再重复添加了。例:Duplicate entry ‘0’ for key ‘PRIMARY是指主键为0的数据已经存在,不能再插入主键值为0的数据了。
全栈程序员站长
2022/08/02
1.7K0
mysql存储过程执行_mysql存储过程不执行
查看event是否开启: show variables like ‘%sche%’;
全栈程序员站长
2022/10/02
16.7K0
mysql配置1045错误_MySql 1045错误「建议收藏」
配置时以管理员身份运行MySQL Instance Configuration Wizard
全栈程序员站长
2022/08/13
2.3K0
MySQL 存储过程
  MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的 SQL 语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
Demo_Null
2020/09/28
13.4K0
MySQL 存储过程
mysql 配置错误
mysql配置的时候报APPCRASH错误,错误模块是ntdll.dll。没有启动项,按文档教程一模一样配置了IIS,装了PHP最新版7.4.4 win32。可以运行。想装个MySQL玩玩,装不了,这是什么回事,期待有人解答一下。对这方面不是很懂,哈哈哈,就是模仿人家的教程安装的。
用户7140869
2020/04/03
3K0
MySQL连接错误
ERROR 1045 (28000): Access denied for user’root’@’localhost’(using password:YES)
一点儿也不潇洒
2018/08/07
3.6K0
MySQL连接错误
MySQL存储过程
存储过程体包含了在过程调用时必须执行的语句,例如:dml、ddl语句,if-then-else和while-do语句、声明变量的declare语句等。
看、未来
2021/12/05
10.1K0
MySQL存储过程
SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
流柯
2018/08/30
13.7K0
MySQL存储过程
【MySQL】存储过程
1、解耦合。数据库部分可交由专门的数据库管理人员去做,像前后端联合协作那样提供接口供后端调度。(这两天对后端开发又有了新的理解:作为前端和数据库之间数据转接的中间人。不论是哪种业务,后端架构如何发展,不都是为了数据走的更顺畅点吗?)作为后端开发人员,SQL是必备语言,但是如果条件允许,专业的事情交给专业的人来做。
看、未来
2021/12/20
7.9K0
mysql存储过程
CONCAT(person_no,"号犯人住", i , "号床位"); ---字符串拼接
用户5927264
2019/07/31
8.3K0
MySQL 存储过程
存储过程(Stored Procedure)是一种存储在数据库中的程序,可供外部程序调用的一种数据库对象。
恋喵大鲤鱼
2023/10/12
3820
MySQL 存储过程
mysql存储过程
1)“存储过程和函数”:类似于java中的方法,python中的函数。 2)“使用存储过程的好处”:   ① 提高代码的重用性;   ② 简化操作;   ③ 减少了编译次数,并且减少了和数据库服务器的连接次数,提高了效率。    注意:每执行一句sql语句,就会连接mysql服务器一次。 3)“存储过程的含义”:一组预先编译好的sQL语句的集合。
数据分析与统计学之美
2022/05/09
11.7K0
mysql存储过程
MySQL(存储过程)
存储过程是一组已经预先编译好的SQL语句的集合,可以理解为批处理语句(增加流程控制语句),一般在复杂的业务逻辑中才会使用存储过程。
全栈开发日记
2022/05/12
11.8K0
MySQL(存储过程)
MySQL存储过程
可惜啊!MySQL目前并不支持在SQL语句中存在流控制语句,例如上面的IF NOT EXISTS THEN END IF;让人痛心疾首。但是我们可以使用存储过程完成上面要求的功能。
恋喵大鲤鱼
2018/08/03
11.3K0
MySQL存储过程
Mysql存储过程
存储过程就是一条或者多条SQL语句的集合,可以视为批文件。它可以定义批量插入的语句,也可以定义一个接收不同条件的SQL。
用户3467126
2019/08/29
6.7K0

相似问题

mysql过程连接错误

10

MySql过程错误:1242

20

创建MySQL过程错误

14

MySQL过程:获取错误

13

MySQL存储过程错误

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文