将生成的列更改为MySQL表中未生成的列

时间:2017-08-28 07:56:27

标签: mysql generated

我创建了一个包含生成列的MySQL表:

CREATE TABLE `messages` (
    `metadata` JSON NOT NULL,
    `aggregate_version` INT(11) UNSIGNED GENERATED ALWAYS AS (metadata->'$._aggregate_version') STORED NOT NULL
);

如何将aggregate_version更改为非生成列?列类型应保持不变。

1 个答案:

答案 0 :(得分:0)

  

13.1.8.3 ALTER TABLE and Generated Columns

     

...

     
      
  • 存储但不是虚拟生成的列可以更改为非生成列。存储的生成值将成为非生成列的值。
  •   
     

...

尝试:

ALTER TABLE `messages`
MODIFY `aggregate_version` INT UNSIGNED NOT NULL;

请参阅db-fiddle