gpt4 book ai didi

MYSQL 序列函数

转载 作者:行者123 更新时间:2023-11-29 21:56:03 25 4
gpt4 key购买 nike

我已经创建了这个mysql函数

delimiter //
create function seq(tag int(10)) returns int
begin
update seq set val=last_insert_id(val+1) where tag_code=tag ;
return last_insert_id();
end
//
delimiter ;
CREATE TABLE `seq` (
`tag_code` int(1) NOT NULL,
`val` int(10) unsigned NOT NULL,
PRIMARY KEY (`tag_code`)
) ENGINE=InnoDb DEFAULT CHARSET=latin1
insert into seq values(1,100);
insert into seq values(2,100);

它与 InnoDb 一起工作正常,但有时我的函数调用会超时。我打算将表引擎切换到MyISAM,但我担心并发问题。即并行调用此函数可以返回相同的序列

以前有人这样做过吗?

最佳答案

last_insert_id() 函数的行为与表引擎无关。如果它可以为 2 个独立调用返回相同的值,则意味着自动增量功能已损坏,并且具有自动增量字段的 2 条记录可能具有相同的值。

此外,它返回的值是根据每个连接维护的,因此该函数将为不同的连接返回不同的值。

关于MYSQL 序列函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33140408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com