2012-08-31 21 views
-1

如何獲得自動增量表格的列名稱?選擇自動增量表格的列名稱

我有一個代碼,讓我所有的表

,我想選擇他們的每一個自動遞增列的。

$tables = $this->sql("SHOW TABLES"); 

    foreach($tables as $tb) 
    { 

     //here i waant to select the auto increment of the table 
    } 

我該怎麼做?

+0

那麼'$ tb'中有什麼?你的下一步會是什麼? –

+2

可能的重複:http://stackoverflow.com/questions/468664/how-can-i-find-if-a-column-is-auto-increment-in-mysql?rq=1 – redDevil

+0

這甚至是甚麼? –

回答

1

嘗試這樣的事情,

SELECT * 
FROM COLUMNS 
WHERE TABLE_SCHEMA = 'yourschema' AND 
     EXTRA = 'auto_increment' 
0

你可以使用類似這樣

$tables = $this->sql("SHOW TABLES"); 

foreach($tables as $tb) 
{ 

    $result = mysqli_query("SHOW COLUMNS FROM ".$tb); 
    if (!$result) { 
    echo 'Could not run query: ' . mysql_error(); 
    exit; 
    } 
    if (mysqli_num_rows($result) > 0) { 
    $autoincrement_field = array(); 
    while ($row = mysql_fetch_assoc($result)) { 
    if($row['Extra'] === "auto_increment"){ 
     $autoincrement_field[] = aray($tb => $row['field']); 
    } 
    } 
    } 
} 

這給你想要什麼輸出..

欲瞭解更多信息,看看在Link

1

使用mysqli_fetch_fields()它給出有關表格字段的屬性數組。此數組中的一個字段被稱爲FLAGS,它表示已爲該字段設置的各種標誌,如PRIMARY_KEY,UNIQUE_KEY,AUTO_INCREMENT_FLAG等。

0

要獲取表中列名的列表,請運行以下Mysql查詢: SHOW COLUMNS $tablename。請親自嘗試一下這個無害的信息性陳述,以便了解它返回的結果。更多關於此查詢實際上做的詳細信息,請參閱:http://dev.mysql.com/doc/refman/5.0/en/show-columns.htm

在返回的查詢結果中的「鑰匙」列將包含「PRI」 如果這是一個主鍵的值。

確保$tablename是一個真正的表 - 絕對不接受用戶輸入這個值作爲這將是一個嚴重的安全風險。