如何获取自动增量表的列名?
我有一个代码来获取我的所有表格
我希望选择每个自动增量列。
$tables = $this->sql("SHOW TABLES");
foreach($tables as $tb)
{
//here i waant to select the auto increment of the table
}
我该怎么做?
答案 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
是一个真实的表 - 绝对不接受此值的用户输入,因为这将是严重的安全风险。