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

How can I get the default value of a column for an empty table in MySQL?

我有一个包含两列的 table。

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

活动列是一个 tinyint,默认值为 0。但有时默认值会设置为 1,以便所有未来用户都自动设置为活动。

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

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

我现在需要编写一个查询来检测列的默认值是什么。

这可能吗?

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

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';

键入 SHOW CREATE TABLE Users,您将看到使用默认列值创建 table 的输出。

此致

SHOW COLUMNS FROM dbname.tablename;

输出

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

这里,在默认栏显示是否设置了默认值

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