2013-11-15 65 views
0

我有一個表插入到身份屬性產生意外結果

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每次都會增加,即使插入失敗也是如此。

+0

你可能打算使用'AUTO_INCREMENT'和'idenity'是什麼?或者,這只是一個複製/粘貼錯字? –

+0

按設計。自動增量ID在消耗後不會回滾。當你點餐時,如果不好,它不會再次服務。 (至少不應該)除此之外,如果刪除發生空洞將開始發生在身份。這只是一個數字空洞是可以預料的。 – xQbert

+0

取決於食物有多糟糕! @xQbert然後是...他們可以把它收回 - 咧嘴笑 –

回答

0

是的,這就是IDENTITY的工作原理。無論INSERT語句成功或失敗,該值都會遞增。