如何使用适当的引用从 MySQL 5.7 information_schema.columns 获取默认列值?
How to get a default column value from MySQL 5.7 information_schema.columns with appropriate quoting?
我维护 Beekeeper Studio,一个开源 SQL GUI。
我在 MySQL 5.7 中遇到 information_schema.columns
的问题。
当 运行:
select * from information_schema.columns where table_name = ?`
它returns是COLUMN_DEFAULT
,但它似乎不区分变量(例如CURRENT_TIMESTAMP)和字符串'foo'。
有什么地方可以通过适当的引用获得 'real' 默认值?
我的期望:
CURRENT_TIMESTAMP
'foo'
不幸的是,INFORMATION_SCHEMA 中没有可以在 MySQL 5.7 中告诉您这一点的元数据。您只需要知道对于 DATETIME 或 TIMESTAMP 列,CURRENT_TIMESTAMP 是一个特例。
它在代码中被视为特殊情况,因此如果您使用 SHOW CREATE TABLE,它会输出文字字符串“CURRENT_TIMESTAMP”而不是引用的日期时间值。
https://github.com/mysql/mysql-server/blob/5.7/sql/sql_show.cc#L1402-L1411
我维护 Beekeeper Studio,一个开源 SQL GUI。
我在 MySQL 5.7 中遇到 information_schema.columns
的问题。
当 运行:
select * from information_schema.columns where table_name = ?`
它returns是COLUMN_DEFAULT
,但它似乎不区分变量(例如CURRENT_TIMESTAMP)和字符串'foo'。
有什么地方可以通过适当的引用获得 'real' 默认值?
我的期望:
CURRENT_TIMESTAMP
'foo'
不幸的是,INFORMATION_SCHEMA 中没有可以在 MySQL 5.7 中告诉您这一点的元数据。您只需要知道对于 DATETIME 或 TIMESTAMP 列,CURRENT_TIMESTAMP 是一个特例。
它在代码中被视为特殊情况,因此如果您使用 SHOW CREATE TABLE,它会输出文字字符串“CURRENT_TIMESTAMP”而不是引用的日期时间值。
https://github.com/mysql/mysql-server/blob/5.7/sql/sql_show.cc#L1402-L1411