我有一个有两列的表。
+-------------+---------------+
| User | Active |
+-------------+---------------+
| Geoff | 1 |
| Bob | 1 |
+-------------+---------------+
“活动”列为tinyint
,默认值为0.但有时默认值设置为1,以便将来所有用户都自动设置为活动状态。
我可以使用此查询设置默认值:
ALTER TABLE `Users` MODIFY COLUMN `Active` tinyint(1) NOT NULL DEFAULT '1';
我现在需要编写一个查询 detect 列的默认值。
这可能吗?
编辑:我应该指定。我希望查询 only 显示默认值,因为我将在某些代码中使用它。
答案 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