gpt4 book ai didi

mysql - MySQL是否有并发控制生成自增值?

转载 作者:行者123 更新时间:2023-11-29 10:40:15 24 4
gpt4 key购买 nike

我的同事给我提供了一个模拟Oracle序列的代码段:

    // generate ticket
pstmt = conn.prepareStatement( "insert seq_pkgid values (NULL);" );
if(pstmt.executeUpdate() > 1) {
success = 1;
} else {
throw new Exception("Generating seq_pkgid sequence failed!");
}
pstmt.close();
pstmt = null;
// get ticket
pstmt = conn.prepareStatement( "select last_insert_id() as maxid" );
rs = pstmt.executeQuery();
if( rs.next() ) {
nSeq = rs.getInt( "maxid" );
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;

但我想知道如果这个代码段大约同时从 2 个实例执行会怎样。他们会得到相同的生成的自动增量值吗? MySQL 是否有并发控制,例如生成新的自增值时使用临界区还是信号量?

最佳答案

是的!如果该列在列定义中具有AUTO_INCRMENT,则MySQL将在该列上设置自动增量锁。请引用 https://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html

关于mysql - MySQL是否有并发控制生成自增值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45628113/

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