我可以取回 MySQL 表中列名的默认值吗? [重复]

问题描述 投票:0回答:3

我可以获取表的列名称,但有没有办法检索每列的默认数据值?

这是我用来获取表列名称的方法:

$q = $dbh->query("DESCRIBE tablename"); 
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);

print_r($table_fields);

这会打印一个列名称数组,但我也尝试获取每个列名称的默认数据值。

php mysql pdo
3个回答
14
投票

另一个选择是转到数据字典并查找

Information_Schema.Columns
中的值。这允许您将结果限制为单列。

$query = <<< endsql
 SELECT Column_Default
  FROM Information_Schema.Columns
  WHERE Table_Schema = '$yourSchema'
    AND Table_Name = '$yourTableName'
    AND Column_Name = '$yourColumnName'
endsql;

8
投票

试试这个:

$query = "SHOW FULL COLUMNS FROM tableName";
// ...

专栏

Default
.


-2
投票

只需在 FETCH_COLUMN 之后给出一个索引即可。我没有尝试你的代码,但根据DESCRIBE手册它将返回6个描述列。因此,如果您阅读了this,您可能会得到解决方案。我已阅读它们,我认为只需在代码中添加第四个索引(如下所示)即可解决您的问题。

$table_fields = $q->fetchAll(PDO::FETCH_COLUMN,4);
© www.soinside.com 2019 - 2024. All rights reserved.