如何在 MySQL 中查找生成的列定义
How to Find Generated Column Definition in MySQL
我在测试员工数据库中的薪水 table 添加了一个虚拟生成的列,如下所示:
ALTER TABLE salaries
ADD COLUMN salary_k int AS (salary / 1000);
现在,当我查询 INFORMATION_SCHEMA.COLUMNS
时,EXTRA
列按预期显示 VIRTUAL GENERATED
,但我如何才能获得生成列的详细信息,即在这种情况下 (salary / 1000)
? COLUMN_DEFAULT
显示 NULL
.
SHOW CREATE TABLE salaries
在结果中显示了详细信息,但我希望将结果作为 INFORMATION_SCHEMA
的更大查询的一部分,因此这对我不起作用。
它在 INFORMATION_SCHEMA.COLUMNS
的 GENERATION_EXPRESSION
列中。
GENERATION_EXPRESSION
For generated columns, displays the expression used to compute column values.
这里有一个更实用的答案:
SELECT column_name, generation_expression
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'salaries'
我在测试员工数据库中的薪水 table 添加了一个虚拟生成的列,如下所示:
ALTER TABLE salaries
ADD COLUMN salary_k int AS (salary / 1000);
现在,当我查询 INFORMATION_SCHEMA.COLUMNS
时,EXTRA
列按预期显示 VIRTUAL GENERATED
,但我如何才能获得生成列的详细信息,即在这种情况下 (salary / 1000)
? COLUMN_DEFAULT
显示 NULL
.
SHOW CREATE TABLE salaries
在结果中显示了详细信息,但我希望将结果作为 INFORMATION_SCHEMA
的更大查询的一部分,因此这对我不起作用。
它在 INFORMATION_SCHEMA.COLUMNS
的 GENERATION_EXPRESSION
列中。
GENERATION_EXPRESSION
For generated columns, displays the expression used to compute column values.
这里有一个更实用的答案:
SELECT column_name, generation_expression
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'salaries'