选择自动增量的表的列名称

时间:2012-08-31 03:41:51

标签: php mysql sql

如何获取自动增量表的列名?

我有一个代码来获取我的所有表格

我希望选择每个自动增量列。

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

   foreach($tables as $tb)
   {

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

我该怎么做?

4 个答案:

答案 0 :(得分:1)

尝试这样的事情,

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

答案 1 :(得分:1)

使用mysqli_fetch_fields(),它提供了有关表字段的属性数组。此数组中的一个字段称为FLAGS,表示为字段设置的各种标志,如PRIMARY_KEY,UNIQUE_KEY,AUTO_INCREMENT_FLAG等。

答案 2 :(得分: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

答案 3 :(得分:0)

要获取表中的列名列表,请运行此Mysql查询:SHOW COLUMNS $tablename。请自己尝试这种无害且信息丰富的声明,只是为了看看它返回的内容。有关此查询实际执行的操作的详细信息,请参阅:http://dev.mysql.com/doc/refman/5.0/en/show-columns.htm

如果它是主键,则返回的查询结果中的“Key”列将包含值“PRI”

确保$tablename是一个真实的表 - 绝对不接受此值的用户输入,因为这将是严重的安全风险。