插入标识属性会产生意外结果

时间:2013-11-15 20:11:05

标签: php sql sql-server pdo identity

我有一张桌子

MovieInfo
M_ID int idenity
title varchar
yearReleased int    
Primary key ( title, yearReleased)

我的php文件将值插入表中:

try{
     $host = new PDO('sqlsrv:server=localhost;Database='.$database, $username, $password);

        $movieTitle = $_POST['title'];
        $movieYear = $_POST['year'];


        $stmt = "INSERT INTO MovieInfo (title, yearReleased) VALUES (:title, :year)";
        $q = $host->prepare($stmt);
        $q->execute(array(':title'=>$movieTitle, ':year'=>$movieYear));

        $host = null;
    }
catch(PDOException $e)
{
    die('Connect not connect: '.$e->getMessage());
}

我的表格填充正常,但是自动更新的M_ID不会像1,2,3,4,5那样逐步更新。相反,我对该列的值是1,3,4,6,7,10,11。我很好奇,如果这是预期的或有什么不同。如果我尝试插入副本,它不会运行预期的。看起来M_ID每次都会增加,即使是在失败的插入时也是如此。

1 个答案:

答案 0 :(得分:0)

是的,这就是IDENTITY的工作原理。无论INSERT语句成功与否,该值都会递增。