【问题标题】:Using a case expression inside a Default/Expression on a MySQL table在 MySQL 表的 Default/Expression 中使用 case 表达式
【发布时间】:2020-07-08 09:52:39
【问题描述】:

我想在 MySQL 表的 Default/Expression 中设置 case 子句。但我认为我可以用图片更好地解释,所以请看下面。

目前我有想要在视图中使用的 case 表达式。但是我决定我想将该 case 表达式的结果存储在一个表中。 我知道我可以有像 c 列那样的表达式,即 a 列 * b 列的乘积。 我假装实现了类似的目标,但没有使用 case 子句进行乘法运算,但是当我将 case 子句放在默认表达式中时,我得到了这个错误: “错误 1067:'ciclo' 的默认值无效”蜂鸣'ciclo' 我的列的名称

【问题讨论】:

    标签: mysql datatable default-value


    【解决方案1】:

    默认值是一个常数,如果给定一个表达式,它将在CREATE TABLE/ALTER TABLE命令的时候被计算。

    您更需要的是generated column

    CREATE TABLE .... (
      ....
      ciclo VARCHAR(45) AS (CASE .... THEN 'invalido' ELSE .... END)
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-29
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2021-12-30
      相关资源
      最近更新 更多