提醒一个xampp启动mysql创建函数存在的坑

一直以来本地搭建的项目为了方便我都是使用xampp作为mysql的管理工具,比较简洁可视化比较好。但是最近程序的一个报错暴露了他与mysql之间的一些问题。

使用自增序列nextval函数时,突然抛出来一句:

select nextval( 'SEQ_REGISTER_ID')
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''SEQ_REGISTER_ID')' at line 1
> 时间: 0s

瞬间我产生2个疑点:

1.我的nextval函数写的没问题。如下:

CREATE DEFINER=`root`@`localhost` FUNCTION `nextval`(seq_name VARCHAR(50)) RETURNS int(11)DETERMINISTIC
BEGINUPDATE sequenceSET current_value = current_value + incrementWHERE name = seq_name;RETURN currval(seq_name);
END

为什么在执行时会报错,况且我的curral函数的表达式语法很相似,但是curral函数不报错呢,如下:

CREATE DEFINER=`root`@`localhost` FUNCTION `currval`(seq_name VARCHAR(50)) RETURNS int(11)DETERMINISTIC
BEGINDECLARE value INTEGER;SET value = 0;SELECT current_value INTO valueFROM sequenceWHERE name = seq_name;RETURN value;
END

2.报错内容有一句话很蹊跷:

check the manual that corresponds to your MariaDB server version for the right syntax

这看上去不像是mysql的报错,查看一下mysql版本吧,大吃一惊:

这还真不是mysql数据库。关键词搜索MariaDB 后发现,xampp默认的数据库是MariaDB 并不是mysql,这个MariaDB 是何方神圣还真没注意过,百度后得知:

MariaDB和MySQL都是关系型数据库管理系统,它们有许多相似之处,但也有一些关键的不同点。

1. 开发者

MariaDB是MySQL的一个分支,在MySQL的创始人麦克尔·维德纽斯离开Oracle之后,他带领一些MySQL的开发人员创建了MariaDB。而MySQL最初是瑞典MySQL AB公司的产品,后来被Sun Microsystems收购,之后又被Oracle收购。

2. 许可协议

MariaDB基于GPL(GNU通用公共许可证)协议,这意味着它是开源的,并且可以免费使用和分发。而MySQL则分为两个版本:社区版和商业版。社区版是开源的,但只能在非商业环境下使用,而商业版需要付费许可证才能使用。

3. 功能和特性

MariaDB和MySQL在大多数功能和特性上是相似的,因为MariaDB最初就是基于MySQL开发的。然而,MariaDB也添加了一些新特性,例如:数据加密、使用更快的存储引擎(例如XtraDB和Aria)以及更好的性能优化。

4. 性能

MariaDB和MySQL在性能方面都表现得非常好,但是MariaDB在某些情况下可能会更快。例如,MariaDB增加了线程池,这可以显著提高在高并发环境下的性能。此外,MariaDB也采用了一些更好的内存管理技术,这可以提高查询的速度和效率。

5. 社区支持

MariaDB和MySQL都拥有一个非常活跃和强大的社区支持。然而,由于MySQL是一个商业项目,它的社区支持可能不如MariaDB那么强大和广泛。

总之,MariaDB和MySQL都是优秀的关系型数据库管理系统,它们各自都有自己的优点和不同之处。选择哪一个取决于你的具体需求和项目要求。

知道了数据库不同,那么上述nextval函数的格式问题,是不是和这个数据库有关,nextval是不是这个数据库的保留字呢。搜索MariaDB保留字发现,还真是这样:

下面地址是MariaDB保留字的权威地址,有需要的可以去看看:

云数据库 MariaDB 保留关键字-开发指南-文档中心-腾讯云

知道了是保留字,那么解决方法便是,在他两边用  `  `  包起来就好,像这样:

终于,实现了查询。

通过这个也反映出,xampp的默认启动有时候需要更改,使用MariaDB数据库不能完全像mysql那样使用,虽然他生成是完全兼容mysql的。以后遇到类似问题,可以这么想一下了。

工作之余总结一下,欢迎大佬补充指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/77708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高性能数据JS网格 Bryntum Grid 5.5.2 Crack

高性能数据网格 Bryntum Grid 是一个高性能的网络表格组件。它是用纯 JavaScript 构建的,并且可以轻松地与所有主要 JS 框架集成。 功能丰富 Bryntum Grid 具有您期望从专业网格组件获得的所有功能,包括: 很好的表现;很好的绩效 没有人喜欢缓…

演讲实录:大模型时代,我们需要什么样的AI算力系统?

当前,“百模大战”带来了算力需求的爆发,AI芯片产业也迎来巨大机遇,“创新架构开源生态”正在激发多元AI算力产品百花齐放。面对新的产业机会,AI算力产业链亟需通过上下游协作共同把握机遇。 近日,浪潮信息AI&HPC…

异步FIFO设计的仿真与综合技术(1)

概述 本文主体翻译自C. E. Cummings and S. Design, “Simulation and Synthesis Techniques for Asynchronous FIFO Design 一文,添加了笔者的个人理解与注释,文中蓝色部分为笔者注或意译。 摘要(ABSTRACT) FIFO通常被用于将数据…

万物目标识别——Detic使用图像级别的监督信号来进行目标检测模型推理(C++/Python)

一、目标识别 1.1 传统目标识别算法 传统目标检测通常将分类(确定物体属于哪个类别)和定位(确定物体的位置,通常使用边界框bbox表示)任务耦合在一起。这要求训练数据集中包含每个物体的类别标签以及其对应的bbox位置…

【开发】视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛,包括智慧工地、智慧工厂、智慧校园、智慧社区等等。 …

【Flink实战】玩转Flink里面核心的Sink Operator实战

🚀 作者 :“大数据小禅” 🚀 文章简介 :玩转Flink里面核心的Sink Operator实战 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 目录导航 Flink Sink Operator简介Flink 核心知识 Sink Operator速览Fl…

便捷高效的查询系统

今天我要来给大家种草一个超级好用的教学工具——易查分!使用易查分,老师们可以轻松制作一个方便快捷的成绩查询系统,让查询成绩变得简单又高效。下面就让我来为大家详细介绍一下使用教程吧! 是不是想有个自己的分班or成绩查询页面…

Eclipse官网下载历史版本

进入官网 https://www.eclipse.org/ 进入下载页面 选择下载包 同一版本,又有不同类型 Eclipse IDE for Enterprise Java and Web Developers Eclipse IDE for Java Developers 任何Java开发人员必备的工具,包括Java IDE、Git客户端、XML编辑器、Mave…

Unity实现用WASD控制一个物体前后左右移动-小白课程01

1 根据业务逻辑搭建场景 02 根据业务写代码 using System.Collections; using System.Collections.Generic; using UnityEngine;//实现让被挂在的物体往前移动 //按下W键往前移动,按下S键往后移动 public class RoleMove : MonoBehaviour { public float myspe…

新手询问想要成功学好嵌入式开发有什么建议吗?

今日话题,想要成功学好嵌入式开发有什么建议吗?想要学好的话选择一门合适的编程语言是关键。虽然嵌入式开发支持多种语言,但C和C仍然是最常用的。如果你是初学者,从学习C语言开始是一个不错的选择。它相对容易学习,而且…

C++(day5)

思维导图 小练习 实现一个图形类(Shape),包含受保护成员属性:周长、面积,公共成员函数:特殊成员函数书写 定义一个圆形类(Circle),继承自图形类,包含私有属性…

Python下载、安装及如何配置Pycharm(Windows 11)详细教程

本文介绍在Windows 11系统Python的下载、安装及配置Pycharm 一、下载 官网地址:https://www.python.org/downloads/windows/ 1、选择Python 3.10.5版本下载 二、安装 1、选择自定义安装 2、全部默认勾选,点击Next 3、自定义安装路径 建议勾选inst…

计算机竞赛 推荐系统设计与实现 协同过滤推荐算法

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 推荐系统设计与实现 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1…

Matplotlib渲染3D模型【Wavefront .OBJ】

推荐:用 NSDT编辑器 快速搭建可编程3D场景 Matplotlib 有一个非常漂亮的 3D 界面,具有许多功能(和一些限制),在用户中非常受欢迎。 然而,对于某些用户(或者可能对于大多数用户)来说&…

基于Android 语音朗读书籍管理系统

视频演示: 基于Android 语音朗读书籍管理系统 基于 Android 的语音朗读书籍管理系统可以提供用户管理书籍、朗读书籍的功能。以下是一个简单的步骤和功能列表: 用户注册和登录功能: 用户可以注册新账号或使用现有账号登录系统。用户信息可以包…

软件自动化测试有哪些步骤?自动化测试需要找第三方检测机构吗?

您是否曾经因为软件出现问题而影响了工作进程或者个人生活的正常运转?那么,您是否了解软件自动化测试这一神奇的技术?在这篇文章中,我们将为您介绍软件自动化测试的定义和测试步骤,帮助您更好地了解自动化测试。 一、什么是软件自动化测试…

预约微信小程序源码系统制作搭建 适用于多场景 支持万能DIY功能

分享一个预约微信小程序源码系统,适用于多种预约场景,含完整代码包前端后端详细的搭建教程,支持万能DIY功能,让你轻松开发制作一个属于自己的想要的预约小程序。 一、预约微信小程序源码系统制作搭建的基本步骤和注意事项&#xf…

第5篇 vue的通信框架axios和ui框架-element-ui以及node.js

一 axios的使用 1.1 介绍以及作用 axios是独立于vue的一个项目,基于promise用于浏览器和node.js的http客户端。 在浏览器中可以帮助我们完成 ajax请求的发送在node.js中可以向远程接口发送请求 1.2 案例使用axios实现前后端数据交互 1.后端代码 2.前端代码 &…

拿走吧你,Fiddler模拟请求发送和修改响应数据

模拟伪造请求 方法一:打断点模拟HTTP请求 1、浏览器页面填好内容后(不要操作提交),打开fiddler,设置请求前断点,点击菜单fiddler,”Rules”\”Automatic Breakpoints”\”Before Requests” 2、在页面上点…

批量复制文件到指定文件夹,智能跳过相同文件名!

大家好!在进行文件管理的过程中,如果需要将大量文件快速复制到指定文件夹,并避免重复文件名带来的混乱,传统的手动操作可能会非常繁琐和耗时。为了让您能够高效地完成这一任务,我们为您提供了一种智能方法,…