在存储过程中创建临时表

2024-02-16

我正在为 MySQL 编写第一个存储过程。

存储过程需要创建一个临时表,然后向其中插入一些数据。

如果我在存储过程之外手动创建一个普通表,那么存储过程不会创建临时表,存储过程将被创建并完全按照我的要求执行。

如果我随后将创建临时表添加到存储过程中,MySQL 工作台将显示意外的结束和创建语句的 en。

下面是我的存储过程

    DELIMITER //
    CREATE PROCEDURE getLast24Hours()
    BEGIN
#End of the below line I get unexpected end without this it works fine
        CREATE TABLE hours (`Hour` VARCHAR(8) NOT NULL, `Value` INT NOT NULL DEFAULT 0, PRIMARY KEY(`Hour`)); 

        DECLARE crt_time VARCHAR(8);
        DECLARE counter INT;
        DECLARE currentTime DATETIME;

        SET currentTime = NOW();

        SET crt_time = DATE_FORMAT(currentTime, '%d-%m %H');
        SET counter = 0;
        WHILE counter < 23 DO
            INSERT INTO hours (`Hour`) VALUES (crt_time);
            SET currentTime = currentTime - INTERVAL 1 HOUR;
            SET crt_time = DATE_FORMAT(currenttime, '%d-%m %H');
            SET counter = counter + 1;
        END WHILE;
    END //
    DELIMITER ; 

我看不出有什么可以说创建临时表是不可能的,所以我做错了什么。


https://dev.mysql.com/doc/refman/5.7/en/declare.html https://dev.mysql.com/doc/refman/5.7/en/declare.html says:

DECLARE 仅允许在 BEGIN ... END 复合语句内使用,并且必须位于其开头,在任何其他声明之前。

(强调我的)

就像下面这样:

CREATE PROCEDURE getLast24Hours()
    BEGIN
        DECLARE crt_time VARCHAR(8);
        DECLARE counter INT;
        DECLARE currentTime DATETIME;

        CREATE TABLE hours (`Hour` VARCHAR(8) NOT NULL, `Value` INT NOT NULL DEFAULT 0, PRIMARY KEY(`Hour`)); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在存储过程中创建临时表 的相关文章

  • MySQL如何从多个表中获取数据

    我正在寻找 php MySQL jquery 的帮助 我有2张桌子 table1表 1 有 4 列 id 标题 desc thumb img tabel2表 2 有 3 列 id 表 id img 我只想将 2 个表与 get QS 的值进
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row
  • 从两个表中搜索然后删除

    我有两个包含成员数据的表 与 member id 列链接 我需要搜索所有记录email列以 pl 结尾 然后 我需要为此删除两个表中的所有记录 基于 member id 是否可以通过一条 SQL 语句完成此操作 SELECT member
  • 表头在 php 中的 for 循环中重复

    我正在尝试从数据库创建排行榜 我将数据打印在列表中 当我尝试将此数据放入 html 表中时 标题在每次数据输入后都会重复 这是 for 循环导致的 但我不知道如何只打印一次标题 然后将数据插入到每一行中 任何帮助将不胜感激 代码和结果的屏幕
  • SQL 查询按字母顺序对除一个之外的所有结果进行排序?

    我有一个小问题 我正在使用 SQL 数据库的结果填充选择标记 我想要的是最后一个添加为顶部条目 其余条目按字母顺序排序 所以它会返回 developerID developerName 40 ZZZ Dev 39 A Dev 38 Be N
  • 使用 Ruby on Rails 索引多列

    我在 Mysql 数据库中有一个表 我想在其上使用多列索引 如何在不使用 mysql 控制台的情况下在 Rails 中执行此操作 在迁移定义中 您可以这样做 add index table name column1 column2
  • MySQL如何根据字段是否存在来插入新记录或更新字段?

    我正在尝试实现一个评级系统 在数据库表中保留以下两个字段 评级 当前评级 num rates 迄今为止提交的评分数量 UPDATE mytable SET rating rating num rates theRating num rate
  • 纠正mysql创建用户时语法错误

    所以我很常见ERROR 1045 28000 Access denied for user root localhost using password YES mysql错误 我已经尝试了论坛上的所有典型修复 通过 mysql safe 方
  • 语言翻译语法

    我正在尝试为我的项目添加另一种语言 我们知道语言可以表现出主语和谓语的差异 例如 英语 Mustafa和他的朋友去看电影ahmet today 土耳其 Mustafa布昆 阿卡达西ahmetile birlikte sinemaya git
  • ASP.NET API:尚未为此 DbContext 配置数据库提供程序

    我正在尝试从我的 Net Core API 项目连接到 MySql 数据库 这是我的上下文类 public class MyContext DbContext public MyContext public MyContext DbCont
  • UNIX时间记录时区吗?

    我想问一下UNIX时间 UNIX时间是否记录时区 我将托管从美国芝加哥移至 JST 问题是我的整个 MySQL 数据库都有 UNIX 时间 芝加哥 美国时区 的记录 我有一个 PHP 代码来显示之前的时间 例如 3 天前 昨天等 当我搬到新
  • 使用 pip3 安装 mysqlclient 时遇到问题

    我正在尝试使用 Django 设置 python 3 6 环境 安装说明说我应该安装 mysqlclient 才能连接到 mySQL 我明白了 dennis django sudo H pip3 install mysqlclient Co
  • mySQL 返回可能有重复项的随机行

    我正在尝试随机化一定数量的行 但假设数据库中只有 4 行 而我需要获得 6 个随机行 我希望有可能 即使表中有超过 6 行 产生重复的行行 这在 mySQL 中很容易实现吗 我当前的查询是这样的 SELECT FROM winners OR
  • Rails 多租户架构,限制多个租户的访问范围

    目前我们有一个单租户数据库架构 MySQL 运行着超过 100 个数据库 我们使用 Apartment gem 切换子域上的数据库连接 一切都很顺利 然而 我们现在需要创建所谓的 伞 客户端 它可以访问一组现有客户端的所有数据 我不认为这对
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • 如何在 WP_Query 中按日期排序?

    我已经尝试过这种方式但是orderby and order不适用于 WP Query 类 posts new WP Query array post type gt block code orderby gt post date order
  • 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

    数据库表中已有的演示数据 INSERT INTO csvtbl ID SKU Product Name Model Make Year From Year To VALUES 1 C2AZ 3B584 AR Power Steering P
  • PHP 中的异步数据库/服务调用:Gearman 与 pthreads

    在我们的 LAMP 站点上 我们遇到一些服务必须多次调用数据库才能提取数据的问题 通常在 PHP 中完成此操作的方式 至少我的经验 是串行的 这显然是低效的 我们可以通过使用缓存和聚合一些查询来缓解一些低效率的问题 但在某些情况下我们仍然需
  • 如何在MySQL中查找上周的数据

    我想显示来自 Q1 每个学生只有最后一周 Q2 每个学生只有最后一个月 我怎样才能实现这个目标 一周演示 http sqlfiddle com 2 f1fbb 3 当月演示 http sqlfiddle com 2 f1fbb 4 CREA
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7

随机推荐

  • SSIS LookUp Transformation高级编辑器(修改SQL语句)

    我对SSIS中的查找转换有一个疑问 复选框 修改SQL语句 和参数选项有什么用 提前致谢 泽兰 感谢您的回答高德曼 我有一个场景 比如我的查找 参考 表正在访问 DB2 并且在 DB2 中我们有多个架构 我的要求是将架构名称作为参数传递给查
  • 使用 Maven 生成类路径文件

    我想从 pom xml 依赖项生成一个类路径文件 我需要它 所以在测试期间我有所有依赖项的类路径 稍后打包成一个包 maven dependency plugin不适合我有两个原因 它生成存储库中文件的路径 因此要使用它们首先需要运行的其他
  • 如何在 mips 汇编中迭代字符串

    所以我现在正在做一个项目 我们必须接受一个字符串并将其转换为所有大写字母 然后如果 toUpper 或 toLower 字节不是 0 则转换为小写字母 现在我仍在处理大写字母部分 猜测小写字母几乎相同 但是当我遍历字符串查找大写字母时或者当
  • 为什么将 `this` 分配给 `self` 并运行 `self.method()`?

    我正在阅读来源mongoose https github com LearnBoost mongoose blob master lib collection js L40 Collection prototype onOpen funct
  • Neo4j 合并和原子事务

    我正在运行下面的MERGE从客户端应用程序在 10 个并行线程中查询我的 Neo4j 服务器 newFoo and id所有 10 次运行的参数均相同 MERGE foo Foo id id ON MATCH SET foo newFoo
  • 导出到文件时忽略 Jquery 数据表中标头中的 HTML

    我有一个简单的数据表 我在数据表中添加了一个带有表格标题的自定义工具提示 div 参考 https www w3schools com css tryit asp filename trycss tooltip arrow bottom 当
  • Xcode 4:我的 iPhone 项目已成为 Mac OS 项目..并且我无法更改这一点

    我有两个 iOS 项目 它们在 Xcode 3 下正确构建 并且这些 iPhone 已经在应用商店中销售了一段时间 升级到 Xcode 4 后 Xcode 现在认为这些是 Mac OS 项目 当我选择 项目设置 gt 信息 时 它实际上在顶
  • 如何从带有掩模的轮廓图像中获取像素值?

    我尝试从轮廓图像中提取平均像素值 R G B 然而 我的问题是当我应用下面的代码时 观察到一些奇怪的值 int main cv Mat star imread C Users PC Desktop star starcircle png c
  • Swift 错误“静态成员不能用于类型的实例”

    我想重载我的结构的运算符 但收到消息 静态成员 评级 不能在 GlobalSettings 类型的实例上使用 我已经阅读了这个错误的几个答案 但那里的解决方案对我根本没有帮助 我怎么解决这个问题 struct GlobalSettings
  • Android 内容提供商保护级别和不同的密钥

    我有一个应用程序提供专业版 付费 和免费版 添加支持 两个版本都使用相同的密钥存储进行签名 但每个版本都有自己的密钥别名 现在 我想开发一个与两个版本兼容的插件 通过内容提供商提供数据 数据很敏感 因此我需要只能从我的应用程序 专业版和免费
  • JSLint 的 JS 验证器替代品?

    是 JSLintit就js验证工具而言 还有其他工具吗 据我所知有两个不错的 ESLint http eslint org JSHint http jshint com
  • 多重身份验证使用一页登录laravel

    我是 Laravel 的新手 但我对多重身份验证 Laravel 很好奇 我想制作一些有两个规则的网站 客户和卖家 但是 我希望他们使用相同的登录表单登录 我尝试使用 php artisan make auth 但我不明白如何在一个控制器中
  • 在活动目录中,mailNickname 有何用途?

    在 Active Directory 中 mailNickname 是否应始终等于 samaccountname 或者 它应该始终等于邮件属性 减去 domain 我询问的原因是 我们最近将每个人的主要电子邮件地址更改为first last
  • DeviceContext (HDC) 中的 Alpha 通道

    请帮助我处理 HDC 中的 alpha 通道 我让 HDC dc 抛出 CreateCompatibleDC 然后调用 CreateDIBSection 并可以在内存中找到图像字节 然后调用 DrawFrameControl 到此 dc 一
  • Heroku:SSL 未启用

    所以我的 Rails 3 2 1 应用程序在 Heroku 上运行良好 然后我设置config force ssl true在我的生产配置文件中 打开文件后 我现在收到 SSL 未启用 错误 我以为 Heroku 允许你附带他们的 SSL
  • Powershell 字节数组到 INT

    我有一个包含两个值的字节数组 07 and DE 十六进制 我需要做的是以某种方式连接07DE并从该十六进制值获取十进制值 在这种情况下 它是2014 My code This line gives 11 bytes worth of in
  • 如何使用 Raphael.js 旋转 div?

    我是 Raphael 的新手 我真的很困惑 我想使用 Raphael 的按钮来旋转 div 及其内容 理想情况下 我希望有一个平滑的动画 当单击按钮时 动画从 0 度到 90 度 然后当再次单击按钮时 动画将反转 我想我会更改鼠标单击时的
  • 使用 jQuery 的延迟链接 ajax 请求

    我有一个网络应用程序必须多次调用服务器 到目前为止 我有一个很长的嵌套回调链 但我想使用 jQuerywhen then等功能 但是 使用后我似乎无法让东西再次运行then when get pages run tool html then
  • Objective-C 中的“超级”是什么? (自我!=超级)?

    我已阅读下面的问题和故事SEEMS simple Objective C 中的 super 到底是什么 https stackoverflow com questions 3095360 what exactly is super in o
  • 在存储过程中创建临时表

    我正在为 MySQL 编写第一个存储过程 存储过程需要创建一个临时表 然后向其中插入一些数据 如果我在存储过程之外手动创建一个普通表 那么存储过程不会创建临时表 存储过程将被创建并完全按照我的要求执行 如果我随后将创建临时表添加到存储过程中