Sql 在另一列中使用新创建的主键

Sql 在另一列中使用新创建的主键,sql,postgresql,Sql,Postgresql,使用PostgreSQL 在我的表中,有一列“id”,它是一个自动递增的主键。创建新行时,我希望在新行的另一列中使用新创建的主键值。我该怎么做 您需要一个触发器: create or replace function t_update_message_id_trigger() returns trigger as $body$ begin new.message_id := new.id; return new; end; $body$ language plpgsql; cr

使用PostgreSQL

在我的表中,有一列“id”,它是一个自动递增的主键。创建新行时,我希望在新行的另一列中使用新创建的主键值。我该怎么做


您需要一个触发器:

create or replace function t_update_message_id_trigger()
returns trigger as
$body$
begin
    new.message_id := new.id;
    return new;
end;
$body$ language plpgsql;

create trigger t_update_message_id before insert on t
    for each row execute procedure t_update_message_id_trigger();

是一个dbfiddle,说明它是如何工作的。

您使用的是什么RDBMS产品。请同时指定版本。如果是SQL server,您可以使用computed column()。我的错,我使用的是PostgreSql。您可以使用触发器,正如所解释的那样,非常感谢!!