我有一个有两列的表格。
+-------------+---------------+
| 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 COLUMNS FROM dbname.tablename;
输出
Field Type Null Key Default Extra
col1 int(10) NO PRI auto_increment
col2 smallint(10) YES 0
这里,在默认列中显示是否设置了默认值
输入
SHOW CREATE TABLE Users
,您将看到创建带有列默认值的表的输出。
问候
检查 INFORMATION_SCHEMA.COLUMNS 表的 COLUMN_DEFAULT 列。更多信息 - dev.mysql.com/doc/refman/5.1/en/columns-table.html