网站首页 > 教程文章 正文
#在头条记录我的2025#
最近在做跨域数据同步时,遇到无法返回新增ID的问题。模型是把数据从阿里云同步到其它机房。因为数据实际上已经实现了同步,只是没有获取到想要的返回结果,所以一开始以为是程序有bug。接下来就是一番鸡飞狗跳的十八般武艺轮番上阵,经过仔细排查,发现程序并无问题。直到在对比了两边的库表结构后,才发现端倪:目的端的库表没有设置主键!(由于两端对数据的用途不同,所以库表结构并未完全一致)
等将目的端的ID字段设置为主键和自增后,终于获取到了盼望已久的返回值。
原因分析:但凡依赖 mysql api 中的 mysql_insert_id() 函数来获取新增ID,都必须有自增字段。在 mysql 手册中,对于 mysql_insert_id() 的返回值是这样描述的:
mysql_insert_id() returns the value stored into an AUTO_INCREMENT column, ... LAST_INSERT_ID() returns only automatically generated AUTO_INCREMENT values. If you store an explicit value other than NULL or 0, it does not affect the value returned by LAST_INSERT_ID().
估计遇到类似问题的同学还是蛮多的,希望本文能带给你解决问题的思路。
猜你喜欢
- 2025-05-02 《JDBC》第14节:JDBC之获取数据库中的表信息和表字段信息
- 2025-05-02 mysql数据库ORDER BY优化总结(为排序使用索引)
- 2025-05-02 MySQL实现字段分割(一行转多行)(mysql 一行变多行)
- 2025-05-02 MySQL批量生成建表语句(mysql怎么批量造数据)
- 2025-05-02 Python mysql批量更新数据(兼容动态数据库字段、表名)
- 2025-05-02 MySQL数据库中,数据量越来越大,有什么具体的优化方案么?
- 2025-05-02 Mysql中通过关联update将一张表的一个字段更新到另外一张表中
- 2025-05-02 MySQL多行数据合并为一个字段的方法
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)