我在 Postgres 中有一个表,其中包含以下列:
表定义:
名字 varchar(255)|姓氏 varchar(255)|全名 varchar(255)
我想要做的是将以下生成的约束添加到 FullName 列,如下所示 (
FullName varchar(255) generated always as (FirstName || LastName) stored
)。可用于使 FullName 成为生成列的正确的 alter table 命令是什么?
一些背景信息:我正在将数据库从 SQL Server 迁移到 Postgres,SQL Server 中的一个表有一个像这样定义的生成列 (
ColumnName varchar(255) as (column1 + column2) persisted
)
Postgres 中的此列定义为 (ColumnName varchar(255) generated always as (column1 || column2) stored
) 问题是,当我使用迁移工具迁移数据时,我收到与生成的列相关的错误,所以我打算做的是创建没有生成的表约束然后将数据迁移到 postgres 表,之后使用 alter table 我将更改列以具有生成的 constarint
ALTER TABLE your_table_name
ALTER COLUMN FullName SET GENERATED ALWAYS AS (FirstName || LastName) STORED;