Maria DB:将字段更改为PERSISTENT Calculated

时间:2017-03-30 16:54:13

标签: mysql phpmyadmin mariadb calculated-columns

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

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

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

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

      let username : string = 'username';
      let password : string = 'password';
      let headers = new Headers();
      headers.append("Authorization", "Basic " + btoa(username + ":" + password)); 
      headers.append("Content-Type", "application/x-www-form-urlencoded");
      this.http.get('http://localhost:8888/api/', {
        headers: headers
      }).subscribe(
            data => this.example = data.text(),
            err => this.logError(err.text()),
            () => console.log('Request Complete')
        );
    console.log(this.example);

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

phpMyAdmin。版本信息:4.0.10.18

1 个答案:

答案 0 :(得分:2)

首先,在表名周围丢失单引号,它们不适合此目的。使用反引号或不使用任何内容。

在语句中仍会出现语法错误,因为AS子句应该在括号中。添加它们。

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

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

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

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