Postgresql 如何将列更新为外键?

Postgresql 如何将列更新为外键?,postgresql,Postgresql,以下是我创建的表: CREATE TABLE enrolled ( sid integer NOT NULL, ccode character varying(6) NOT NULL, CONSTRAINT enrolled_pkey1 PRIMARY KEY (sid, ccode) ); 现在,我想从名为Class的表中更新要声明为外键的ccode列。我该怎么做 ALTER TABLE ONLY enrolled ADD CONSTRAINT enrolled_ccod

以下是我创建的表:

CREATE TABLE enrolled
(
  sid integer NOT NULL,
  ccode character varying(6) NOT NULL,
  CONSTRAINT enrolled_pkey1 PRIMARY KEY (sid, ccode)
);
现在,我想从名为Class的表中更新要声明为外键的ccode列。我该怎么做

ALTER TABLE ONLY enrolled
    ADD CONSTRAINT enrolled_ccode_fkey FOREIGN KEY (ccode)
        REFERENCES class(ccode)
    ON UPDATE CASCADE ON DELETE RESTRICT;
但要使其起作用,请记住,您必须在
class.ccode
列上有一个唯一的索引:

CREATE UNIQUE INDEX class_ccode_idx ON class USING btree (ccode);

解决了这个问题。谢谢