如何在 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.COLUMNSGENERATION_EXPRESSION 列中。

来自documentation

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'