首页
学习
活动
专区
圈层
工具
发布

为什么 insert 配置 SELECT LAST_INSERT_ID() 返回个0呢?

通常只要配置的没问题,返回对象中也有对应的 id 字段,那么就可以正确的拿到返回值了。PS:问题就出现在这里,小傅哥手写的 Mybatis 竟然只难道返回一个0!...因为最开始这两条语句执行的时候,在获取链接的时候,每一条都是获取一个新的链接,那么也就是说,insert xxx、select LAST_INSERT_ID() 在两个 connection 连接执行时...,其实是不对的,没法获取到插入后的索引 ID,只有在一个链接或者一个事务下(一次 commit)才能有事务的特性,获取插入数据后的自增ID。...每一次都是新的链接,代码块如下; 这里的链接获取,最开始没有 if null 的判断,每次都是直接获取链接,所以这种非一个链接下的两条 SQL 操作,所以必然不会获得到正确的结果,相当于只是单独执行 SELECT...LAST_INSERT_ID() 所以最终的查询结果为 0 了就!

1.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL的列名冲突陷阱:为什么SELECT a.id, a.*能运行,而SELECT id, *却报错?

    问题重现:两个相似的SQL,不同的命运 先来看两个具体的例子: -- SQL1: 这个可以正常运行 SELECT a.id, a.* FROM test1 a; -- SQL2: 这个会报错 SELECT...分析器负责解析SQL语句的结构,当它遇到SELECT id, * ...时,会这样分析: id:识别为一个列名 *:识别为所有列的简写,包括id列 结果:检测到列名冲突!...而当分析器遇到SELECT a.id, a.* ...时: a.id:识别为表a的id列 a.*:识别为表a的所有列 由于有别名限定,分析器认为这是明确的指令,不会将其视为错误 4....在这种情况下,使用列别名是更好的选择: -- 使用列别名区分不同表的同名字段 SELECT u.id as user_id, p.id as product_id, u.name...小结 MySQL对SELECT a.id, a.*和SELECT id, *的不同处理,体现了数据库设计中的一个重要原则:明确性优于隐晦性。

    20610

    MYSQL中获取得最后一条记录的语句

    方法1:select max(id) from tablename 方法2:select last_insert_id(); 在MySQL中,使用auto_increment类型的id字段作为表的主键,...通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表加以“X锁“,待获得max(id)的值以后,再解锁。...答案之一是通过select LAST_INSERT_ID()这个操作。乍一看,它和select max(id)很象,但实际上它是线程安全的。也就是说它是具体于数据库连接的。...3、结果:在连接1中执行select LAST_INSERT_ID()得到的结果和连接2中执行select LAST_INSERT_ID()的结果是不同的;而在两个连接中执行select max(id)...注:使用select last_insert_id()时要注意,当一次插入多条记录时,只是获得第一次插入的id值,务必注意!

    5.3K30

    SIGIR2023 | ID vs 模态: 推荐系统ID范式有望被颠覆?

    链接: https://arxiv.org/abs/2303.13835 代码: https://github.com/westlake-repl/IDvs.MoRec 研究背景 [纯 ID 推荐 vs...经典的双塔架构、CTR 模型、会话和序列推荐、Graph 网络无不采用 ID embedding 来对物品进行建模,整个推荐系统现有的 SOTA 体系也几乎都是采用基于 ID 特征的建模手段。...结合 ID 和模态特征 鉴于 IDRec 和基于 E2E 的 MoRec 都运作良好,一个自然的想法是在一个模型中结合这两个特征(即 ID 和模态)。...第二个原因可能是在结合 ID 和模态特征时需要更先进的技术。 事实上,从另一个角度看,带有 ID 特征的 MoRec 将失去 MoRec 的许多优势。...例如,使用 ID 特征的 MoRec 不适合建立基础推荐模型,因为由于隐私和不同平台间用户、商品难以重叠的问题,ID 不容易迁移。

    42110

    推荐系统范式之争,LLM vs. ID?

    论文:arxiv.org/abs/2305.11700 研究动机 推荐系统模型经典ID(userID、itemID及各种categorical ID)范式已经主导社区长达10年,是否有望继续主导下一个十年...论文针对两种推荐模型(微调vs 冻住表征)进行了几组不同对比实验。如图所示,结果表明即使是由极其庞大的LM(如GPT-3)学习到的物品表示,也未必能形成一个通用的表征。...论文认为对TCF而言与主流的IDCF范式进行对比是十分必要的,因为ID特征(包括用户ID和项目ID)被认为是推荐系统大模型(又称基础模型)的一个主要障碍。...文章认为要实现推荐系统基础模型需要至少满足两个条件:(1)放弃ID特征,因为ID特征在不同业务系统无法共享,自然没办法实现迁移学习;(2)实现有效的跨域、跨平台迁移。...问题5:ChatGPT4Rec vs TCF 最近,由于ChatGPT的巨大成功,出现了很多ChatGPT用于推荐系统的文献。

    89310

    关于mysql自增id的获取和重置

    转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) ---- mysql获取自增id的几种方法 使用max函数:select max(id) from tablename...缺点:获取的不是真正的自增id,是表中最大的Id,如果有删除数据的话,那么该值和自增id相差比较大。如果有连表数据,有可能导致数据错乱。...使用LAST_INSERT_ID函数:select LAST_INSERT_ID() 优点:获取到的是真正的自增id。 缺点:该函数是与table无关的,永远保留最新插入的自增列的id。...使用@@IDENTITY变量:select @@IDENTITY 此方法和LAST_INSERT_ID()功能差不多,优缺点也一致。需要在插入后调用。...如: select Auto_increment into autoId from information_schema.tables where Table_Schema = ‘dbname’

    13.1K20
    领券