来自具有多行的插入的ID

时间:2011-01-12 21:02:08

标签: mysql

是否可以安全地假设来自具有多行的插入的自动增量id将从一个开始递增到mysql_last_insert_id()值?这个多次插入之间是否会有并发插入(来自其他用户会话)?

在此示例中,tbl_name有一个名为id的自动增量字段:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

$nbAffectedRows = mysql_affected_rows();
$idFirstRowInserted = mysql_last_insert_id();

$arrayId = array();
if($nbAffectedRows > 0){
    for($i = 0; $i <= $nbAffectedRows; $i++){
        $arrayId[] = $idFirstRowInserted + $i;
    }
}

$arrayId是否总是包含与插入行的'id'相对应的值增加的值?

1 个答案:

答案 0 :(得分:1)

如果将INSERT包装在一个事务中,可以安全地假设。作为副作用,您的查询也会运行得更快。