mysql - 将 MySQL 表中的生成列更改为非生成列

标签 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 更改为非生成列?列类型应保持不变。

最佳答案

13.1.8.3 ALTER TABLE and Generated Columns

...

  • Stored but not virtual generated columns can be altered to nongenerated columns. The stored generated values become the values of the nongenerated column.

...

尝试:

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

参见db-fiddle .

关于mysql - 将 MySQL 表中的生成列更改为非生成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45914253/

相关文章:

php - 在php中递归地提取数据库信息

MySQL 组百分比计数

mysql - 使用组合键中的一列作为外键

php - 使用PHP将数组一一存储在MySQL中

gradle - 如何让 IntelliJ 识别 gradle 生成的源目录?

mysql - SQL查询多对多关系

javascript - 如何将 jwt token 应用于生成的 Angular 2 JS 文件?

java - Hibernate:在以下情况下插入具有自定义 id 的实体:strategy = GenerationType.AUTO

angular - NativeScript + Angular - 预览中的新项目错误 : Type AppRoutingModule does not have 'ngModuleDef' property

python - 为 python 包生成单独的配置文件