2013-04-10 37 views
4

我可以得到表的列名,但有没有办法检索每列的默认数据值?我可以取回MySQL表中列名的默认值吗?

下面是我用得到的表列名的:

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

print_r($table_fields); 

这将打印列名的数组,但我试图让每个列名也是默认数据值。

+0

这可能有助于http://stackoverflow.com/questions/8266771/how-to-select-default-value-of-a-field – jszobody 2013-04-10 01:39:44

回答

4

试试这个:

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

Default

我希望我帮助。

-1

只需在FETCH_COLUMN后给出索引即可。我没有尝试你的代码,但基于DESCRIBE manual它将返回6个描述列。所以如果你已经阅读this你可能会得到解决方案。我已经阅读了他们,我认为只需在下面的代码中添加第四个索引就可以解决问题。

$table_fields = $q->fetchAll(PDO::FETCH_COLUMN,4); 
+0

这不起作用 – Paul 2013-04-10 02:03:34

4

另一种选择是转到数据字典并找到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; 
相关问题