从空表中选择列的默认值(mysql)

时间:2014-02-22 11:13:40

标签: php mysql sql

我在mysql中有一个目前为空的表。其中一列是timestamp,设置为默认值(固定值而不是当前时间戳)。

现在我没有任何行,但我想从timestamp列获取默认时间戳。我尝试了一些东西,但它没有用。

$sql = mysql_query("SELECT DEFAULT(`timestamp`) FROM `mytable`");
$row = mysql_fetch_assoc($sql);
$time = $row['timestamp'];

echo $time;

我不知道该怎么做。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

如果你的表'mytable'有一个名为'timestamp'的字段,你需要这个默认值,这就是方法:

$sql = mysql_query("EXPLAIN `mytable`");
while($row = mysql_fetch_assoc($sql)) {
  if ($row['Field'] == 'timestamp') {
     echo $row['Default'];
  }
}

答案 1 :(得分:1)

MySQL 5.02版本有一个'数据字典',可以用select语句查询。

SELECT column_default FROM information_schema.columns
WHERE table_name = 'your_table'
AND column_name = 'your_column'

返回适当的信息。

谷歌搜索'mysql information_schema'会返回大量参考文献。我不确定在这里发布http链接是否可以。

答案 2 :(得分:0)

您的代码看起来正确,只有数组访问中的密钥似乎是错误的。 tjis应该工作:

$sql = mysql_query("SELECT  DEFAULT(`timestamp`) AS default_timestamp FROM `mytable`");
$row = mysql_fetch_assoc($sql);
$time = $row['default_timestamp'];

答案 3 :(得分:0)

试试这个:

$sql = mysql_query("DESCRIBE `mytable`");
while ($result = mysql_fetch_assoc($sql)) {
    if ($result['Field'] == 'timestamp') {
        $default = $result['Default'];
        break;
   }
}

echo $default;

干杯

相关问题