如何获取 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
我有一个包含两列的 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