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

news2025/1/22 8:33:18

一直以来本地搭建的项目为了方便我都是使用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
BEGIN
         UPDATE sequence
                   SET current_value = current_value + increment
                   WHERE name = seq_name;
         RETURN currval(seq_name);
END

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

CREATE DEFINER=`root`@`localhost` FUNCTION `currval`(seq_name VARCHAR(50)) RETURNS int(11)
    DETERMINISTIC
BEGIN
         DECLARE value INTEGER;
         SET value = 0;
         SELECT current_value INTO value
                   FROM sequence
                   WHERE 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.coloradmin.cn/o/1007212.html

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

相关文章

代码随想录 -- day50 -- 123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III 动态规划: 关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。 一天一共就有五个状态, 没有操作 (其实我们也可以不设置这个状态)第一次持…

微信怎么定时发圈?

定时发圈的妙用 在合适的时间点发布新的产品、促销活动,不仅能够及时提醒用户品牌的存在,还可以引发用户的兴趣,增加品牌的曝光率。 选择最佳的发朋友圈时间段,以确保推广内容得到最大的曝光和关注,提高广告投放的效果…

推进“数智+数治”,中期科技智慧公厕驱动城市公厕更新升级发展

随着城市化的快速发展和人口的不断增加,公共厕所这一基础设施的更新升级成为了亟待解决的问题。过去的传统公厕往往存在着环境脏乱差、无法保证使用者的舒适度等诸多问题。而智慧公厕则能够通过互联网和物联网的技术手段,实现智能化的运行管理&#xff0…

微信小程序 封装请求api

封装请求地址 https.js let baseUrlhttps://XX.XXX.com/index.php/; //自己得服务器地址export {baseUrl}结构目录 封装 request.js import { baseUrl } from ./https.jsmodule.exports {request : function(url, methodType, data){let fullUrl ${baseUrl}${url}// let tok…

mmap详解

想写一篇文章,详细的介绍一下mmap,主要是原理、用法、mmap泄露来进行介绍。说到mmap,首先得从堆空间说起。 申请堆空间 其实,不管是 32 位系统还是 64 位系统,内核都会维护一个变量 brk,指向堆的顶部&…

element-ui框架的el-dialog弹出框被遮罩层挡住了/el-drawer....会生成v-model元素的组件被遮罩层挡住

element-ui框架的el-dialog弹出框被遮罩层遮挡问题_前端李十三的博客-CSDN博客可以发现el-dialog 组件显示的时候被遮罩层挡住了。https://blog.csdn.net/weixin_64530670/article/details/131173159?ydrefereraHR0cHM6Ly9tcC5jc2RuLm5ldC9tcF9ibG9nL21hbmFnZS9hcnRpY2xlP3Nwb…

KubeSphere 在互联网医疗行业的应用实践

作者:宇轩辞白,运维研发工程师,目前专注于云原生、Kubernetes、容器、Linux、运维自动化等领域。 前言 2020 年我国互联网医疗企业迎来了“爆发元年”,越来越多居民在家隔离期间不方便去医院看诊,只好采取在线诊疗的手…

USB接口针式打印机

1 针式打印机原理 - 针式打印机16针是纵向排列,每次打印垂直的16bit,然后右移一bit,继续下列打印;字节的MSB表示最上面的点,字节LSB表示最下面的点 - 由于汉字字模的点阵是横向排列的,而提供给打印头的信息…

java.lang.NoSuchMethodError: java.lang.reflect.Field.trySetAccessible()Z

java.lang.NoSuchMethodError: java.lang.reflect.Field.trySetAccessible()Z 将JDK升级为11即可。 File --Project Structure – SDK Location --Gradle Setting --Gradle JDK 选择11

HTML、CSS和JavaScript的实践代码2

今天我将为你带来一个关于HTML、CSS和JavaScript的实践代码&#xff0c;这将展示如何创建一个漂亮的计数器。 首先&#xff0c;让我们创建一个HTML文件&#xff0c;并命名为index.html&#xff1a; <!DOCTYPE html> <html> <head><title>计数器</…

【文件上传-配置文件】crossdomain.xml跨域策略配置文件上传

目录 一、0x00 前言 二、基础知识 1、Flash 2、crossdomain.xml文件 3、crossdomain.xml格式 4、crossdomain.xml相关参数 三、漏洞利用 1、方法&#xff1a; 2、上传漏洞配置文件 一、0x00 前言 在很多地方都会见查是否跨域 比如某些特定的步骤、CSRF、flash跨域劫…

SpringMVC之JSON返回及异常处理机制

目录 一、JSON处理 1.1 导入依赖 1.2 配置Spring-mvc.xml 1.3 ResponseBody注解使用 ​编辑 1.4 Jackson 1.4.1 定义 1.4.2 用途 1.4.3 用法 1.4.4 常用注解 1.5 作用 二、统一异常处理 2.1 为什么要全局异常处理&#xff1f; 2.2 异常处理思路 2.3 SpringMVC异…

实现JSONP请求

同源策略 JavaScript 的浏览器都会使用这个策略。所谓同源是指&#xff0c;域名&#xff0c;协议&#xff0c;端口相同。 而所有非同源的请求&#xff08;即 域名&#xff0c;协议&#xff0c;端口 其中一种或多种不相同&#xff09;&#xff0c;都会被作为跨域请求。实际上请求…

从零开始探索C语言(八)----指针

文章目录 1. 什么是指针&#xff1f;2. 如何使用指针&#xff1f;3. NULL 指针4. 指针的算术运算5. 指针数组6. 指向指针的指针7. 传递指针给函数8. 从函数返回指针 有人说&#xff0c;指针是C语言的灵魂&#xff0c;所以学习C语言&#xff0c;学习指针是很有必要的。 通过指针…

2023年京东黄金市场数据分析(京东数据开放平台)

伴随国际金价的持续上涨&#xff0c;近期国内黄金市场也迎来了一波热潮。根据上海黄金交易所的数据显示&#xff0c;黄金合约的收盘价为600.59元/克&#xff0c;创下历史新高。与此同时&#xff0c;各大金店和电商平台的黄金销售额也大幅增长&#xff0c;许多消费者抢购黄金饰品…

二叉树oj题

目录 层序遍历(一) 题目 思路 代码 层序遍历(二) 题目 思路 代码 根据二叉树创建字符串 题目 思路 代码 二叉树的最近公共祖先 题目 思路 代码 暴力版 队列版 栈版 bs树和双向链表 题目 思路 代码 前序中序序列构建二叉树 题目 思路 代码 中序后序…

3D模型格式转换工具HOOPS Exchange协助Epic Games实现CAD数据轻松导入虚幻引擎

一、面临的挑战 Epic Games最为人所知的身份可能是广受欢迎的在线视频游戏Fortnite的开发商&#xff0c;但它也是虚幻引擎背后的团队&#xff0c;虚幻引擎是一种实时3D创作工具&#xff0c;为世界领先的游戏提供动力&#xff0c;并且也被电影电视、建筑、汽车、制造、模拟等领…

数据结构——看完这篇保证你学会队列

数据结构——队列 一、队列的概念二、队列的实现方式三、队列所需要的接口四、接口的详细实现4.1初始化4.2销毁4.3入队4.5出队4.6获取队头元素4.7获取队尾元素4.8获取队列元素个数4.9判空 五、完整代码5.1Queue.h5.2Queue.c5.3test.c 一、队列的概念 队列&#xff1a;只允许在…

安防监控系统/视频云存储EasyCVR平台视频无法播放是什么原因?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Android studio 断点调试、日志断点

目录 参考文章参考文章1、运行调试2、调试操作3、断点类型行断点的使用场景属性断点的使用场景异常断点的使用场景方法断点的使用场景条件断点日志断点 4、断点管理区 参考文章 参考文章 1、运行调试 开启 Debug 调试模式有两种方式&#xff1a; Debug Run&#xff1a;直接…