这个时候我们在sql的头部加上 DELIMITER $$ 尾部加上 $$DELIMITER;…
概述 最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法:虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面.希望这篇文章能给大家一些参考:文章内容有点长还望耐心阅读. 1.插入测试数据 ----创建表 DROP TABLE score GO CREATE TABLE [dbo].[score]( id ,), name ) NOT NULL, score ), months INT NOT NULL, createt…
目的:使用Navicat 创建mysql存储过程,实现格式为8位日期(年月日)+5位流水号序列. 步骤: 1.打开Navicat 登录数据库,点击导航栏上的函数,如下图: 2.点击新建函数,选择“过程”,如下图: 3.添加输出参数,如下图: 4.存储过程代码如下: BEGIN ) ;-- 定义currentDate为当前日期,格式为:年+月+日 ; -- 定义maxNo为离现在最近的满足条件的订单编号的流水号最后5位,如:2018042600002的maxNo=2 ) DEFAULT '' ;-…
有表:cap_meter_detail 字段:recordtime 情景:recordtime每半个小时记录一次,故一天会产生很很多数据,我们要做的是,每天00:00:00对cap_meter_detail 按时间拆分,比如,今天是2018年09月10号,那就将所有recordtime的日期为2018-09-10的拆分到表cap_meter_detail _20180610 思路:1.建表 cap_meter_detail _20180610 2.从cap_meter_detail 找出date…
下述引用自<MySQL 必知必会> MySQL命令行客户机的分隔符 如果你使用的是MySQL命令行实用程序,应该仔细阅读此说明.默认的MySQL语句分隔符为;(正如你已经在迄今为止所使用的MySQL语句中所看到的那样).MySQL命令行实用程序也使用;作为语句分隔符.如果命令行实用程序要解释存储过程自身内的;字符,则它们最终不会成为存储过程的成分,这会使 存储过程中的SQL出现句法错误. 解决办法是临时更改命令行实用程序的语句分隔符,如下所示: DELIMITER $$ DROP proced…
场景:Navicat 远程连接SQL Server 2014 Express 报08001错误,经查验防火墙端口1434,1433已经打开 过程:1. 一开始觉得是连接名称问题,使用IP地址或者主机名进行连接,然后更换为IP地址\命名实例方式,使用后者较好 2. 更换连接字符串后仍然报错08001,尝试关闭防火墙,连接成功,说明问题出现在端口上 3. 使用netstat –ano命令查看,发现此命令太鸡肋,上网查找工具,发现CurrPorts工具,甚好,发一个截图.该软件可以清晰的看到各种连接信…
写出至少5种css语法(每种语法不一样)…
    首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - iOS - Python - Android - Web前端     Java开发者写SQL时常犯的10个错误 2015/03/10 | 分类: 基础技术 | 0 条评论 | 标签: SQL 分享到:0 本文由 ImportNew - zer0Black 翻译自 jooq.欢迎加入翻译小组.转载请见文末要求…
navicat创建存储过程: 选中该数据库 然后完成,保存的时候出错: 需要为字段类型添加类型的大小.下面加一下. 然后就在这里面写相关的业务代码了. 语句结尾需要加上分号;  .否则会报错. 这边展示一个简单的demo: 传值: 就可以看到输出的结果了. 存储过程的导出操作: 就可以导出到对应的文件了. 附存储过程语法(还未整理,待更新):…
在Navicat里面,找到函数,右键,新建函数,选择过程,如果有参数就填写函数,如果没有就直接点击完成 在BEGIN......END中间编写要执行的sql语句,例如下面存储过程取名为pro_data_bak: BEGIN /*把rd01_device_callback_data 2天前的数据备份到rd01_device_callback_data_bak*/ insert into rd01_device_callback_data_bak ( id, imei, travelid, gps_…