如何在MySQL中查找生成的列定义

时间:2018-08-13 18:54:15

标签: mysql mariadb innodb information-schema

我在测试雇员数据库的薪金表中添加了一个虚拟的生成列,如下所示:

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的较大查询的一部分,因此这对我不起作用。

2 个答案:

答案 0 :(得分:2)

它在GENERATION_EXPRESSION的{​​{1}}列中。

来自documentation

  

INFORMATION_SCHEMA.COLUMNS
  对于生成的列,显示用于计算列值的表达式。

答案 1 :(得分:0)

这是一个更实际的答案:

# Create a X509 certificate object
$byteArray = [System.Convert]::FromBase64String($base64value)
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($byteArray)

# Export the certificate as a PFX file
$bytesPfx = $cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx)
[System.IO.File]::WriteAllBytes('filename.pfx', $bytesPfx)