如何獲得自動增量表格的列名稱?選擇自動增量表格的列名稱
我有一個代碼,讓我所有的表
,我想選擇他們的每一個自動遞增列的。
$tables = $this->sql("SHOW TABLES");
foreach($tables as $tb)
{
//here i waant to select the auto increment of the table
}
我該怎麼做?
如何獲得自動增量表格的列名稱?選擇自動增量表格的列名稱
我有一個代碼,讓我所有的表
,我想選擇他們的每一個自動遞增列的。
$tables = $this->sql("SHOW TABLES");
foreach($tables as $tb)
{
//here i waant to select the auto increment of the table
}
我該怎麼做?
嘗試這樣的事情,
SELECT *
FROM COLUMNS
WHERE TABLE_SCHEMA = 'yourschema' AND
EXTRA = 'auto_increment'
你可以使用類似這樣
$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
使用mysqli_fetch_fields()
它給出有關表格字段的屬性數組。此數組中的一個字段被稱爲FLAGS
,它表示已爲該字段設置的各種標誌,如PRIMARY_KEY,UNIQUE_KEY,AUTO_INCREMENT_FLAG等。
要獲取表中列名的列表,請運行以下Mysql查詢: SHOW COLUMNS $tablename
。請親自嘗試一下這個無害的信息性陳述,以便了解它返回的結果。更多關於此查詢實際上做的詳細信息,請參閱:http://dev.mysql.com/doc/refman/5.0/en/show-columns.htm
在返回的查詢結果中的「鑰匙」列將包含「PRI」 如果這是一個主鍵的值。
確保$tablename
是一個真正的表 - 絕對不接受用戶輸入這個值作爲這將是一個嚴重的安全風險。
那麼'$ tb'中有什麼?你的下一步會是什麼? –
可能的重複:http://stackoverflow.com/questions/468664/how-can-i-find-if-a-column-is-auto-increment-in-mysql?rq=1 – redDevil
這甚至是甚麼? –