如何在PostgreSQL中修改列数据类型并为其添加引用?

问题描述

如何修改现有列并为其添加引用?

假设我有此表创建脚本并将其执行到服务器

create table person (
id bigserial primary key,firstname varchar(255),flastname varchar(255),employeeid int
);

现在我有一个人员表,但是后来我意识到我需要引用另一个表中的employeeid,并且由于现在有数据,所以我不想删除这个现有的人员表。 如何将REFERENCES employee(employeeid)添加到人员表的employeeid列中?。

如果我没有忘记添加引用关键字,那么我的创建表应该如下所示

create table person (
id bigserial primary key,employeeid int references employee(employeeid)
);

那么既然现有雇员编号已经有数据,那么如何修改现有雇员编号以使其具有references关键字呢?

解决方法

使用ALTER TABLE

ALTER TABLE person
   ADD FOREIGN KEY (employeeid) REFERENCES employee(employeeid);