如何更改列,使其在 postgres 中具有生成的约束

问题描述 投票:0回答:1

我在 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

sql sql-server postgresql database-migration generated-columns
1个回答
0
投票
ALTER TABLE your_table_name
ALTER COLUMN FullName SET GENERATED ALWAYS AS (FirstName || LastName) STORED;
© www.soinside.com 2019 - 2024. All rights reserved.