【问题标题】:Maria DB : Alter a field to a PERSISTENT CalculatedMaria DB:将字段更改为持久计算
【发布时间】:2017-08-24 17:44:45
【问题描述】:

我创建了一个表,我希望从表中其他三个字段的连接值中创建一个计算列。

我希望这个计算字段发生在 INSERT 或 UPDATE,所以我指定 PERSISTENT

我在 phpMyAdmin 中尝试了以下代码(以各种方式),但总是出错,这似乎是在 ALTER 表之后立即引用

在 phpMyAdmin 中添加字段时,我没有看到这样做的方法,所以我希望我可以改变它。

Alter TABLE 'tlImages'
CHANGE COLUMN tlImageQuery
AS CONCAT(tlImgTitle,"~",tlImgDescrip,"~",tlImgWhereWhen) PERSISTENT;

MariaDB 版本 10.0.29-MariaDB-cll-lve - MariaDB 服务器

phpMyAdmin 。版本信息:4.0.10.18

【问题讨论】:

    标签: mysql phpmyadmin mariadb calculated-columns


    【解决方案1】:

    首先,丢失表名周围的单引号,它们不适合此目的。使用反引号或什么都不用。

    您仍然会在语句中进一步遇到语法错误,因为AS 子句应该放在括号中。添加它们。

    您仍然会收到语法错误,因为您在 AS (...) 子句之前缺少列类型,请添加它。

    您仍然会收到语法错误,因为 CHANGE COLUMN 需要两个列名,旧的和新的,请改用 MODIFY

    Alter TABLE `tlImages` 
      MODIFY COLUMN tlImageQuery VARCHAR(128) 
      AS (CONCAT(tlImgTitle,"~",tlImgDescrip,"~",tlImgWhereWhen)) PERSISTENT
    ;
    

    (类型VARCHAR(128) 仅作为示例给出)。

    【讨论】:

    • 辉煌 - 工作一种享受。我希望这可以成为其他人的一个例子,因为我在网上找不到任何接近的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多