如何在MySQL中获取空表的列的默认值?

时间:2018-02-14 12:45:42

标签: mysql default-value

我有一个有两列的表。

+-------------+---------------+
|    User     |    Active     |
+-------------+---------------+
|    Geoff    |       1       |
|    Bob      |       1       |
+-------------+---------------+

“活动”列为tinyint,默认值为0.但有时默认值设置为1,以便将来所有用户都自动设置为活动状态。

我可以使用此查询设置默认值:

ALTER TABLE `Users` MODIFY COLUMN `Active` tinyint(1) NOT NULL DEFAULT '1';

我现在需要编写一个查询 detect 列的默认值。

这可能吗?

编辑:我应该指定。我希望查询 only 显示默认值,因为我将在某些代码中使用它。

4 个答案:

答案 0 :(得分:2)

SHOW CREATE TABLE Users

将向您展示的不仅仅是那个。

您还可以查询information_schema

select c.COLUMN_DEFAULT
from information_schema.`COLUMNS` c
where c.TABLE_SCHEMA = 'MyDatabaseName'
  and c.TABLE_NAME = 'Users'
  and c.COLUMN_NAME = 'Active';

答案 1 :(得分:1)

SHOW COLUMNS FROM dbname.tablename;

<强>输出

Field       Type            Null        Key     Default     Extra
col1        int(10)         NO          PRI                 auto_increment      
col2        smallint(10)    YES                 0       

此处,在默认列中显示是否设置了任何默认值

答案 2 :(得分:0)

键入SHOW CREATE TABLE Users,您将看到创建表的输出,其中包含列的默认值。

此致

答案 3 :(得分:0)

检查INFORMATION_SCHEMA.COLUMNS表,列COLUMN_DEFAULT。更多信息 - dev.mysql.com/doc/refman/5.1/en/columns-table.html