postgresql - 如何将列更新为外键?

标签 postgresql

这是我创建的表:

CREATE TABLE enrolled
(
  sid integer NOT NULL,
  ccode character varying(6) NOT NULL,
  CONSTRAINT enrolled_pkey1 PRIMARY KEY (sid, ccode)
);

现在我想更新 ccode 列以声明为来自名为 Class 的表的外键。我该怎么做?

最佳答案

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);

关于postgresql - 如何将列更新为外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453178/

相关文章:

sql - 仅显示那些 SUM(price) 大于特定数字的行

postgresql - 使用表关联时保存多对多关系的策略

java - PostgreSQL JDBC 中 int/numeric 列上的 PreparedStatement.setString

node.js - 无法从 Sequelize 读取亚洲/加尔各答时区的数据

jquery - Heroku PostgreSQL 更改 sortable_list POST?

python - 通过 SQLALchemy 在 Postgres 中插入加密数据

sql - 在 PostgreSQL 中的 SELECT SQL 语句中插入 SQL 语句

postgresql - xlog - 知道两个数据库是否来自源

sql - 如何选择两列组合相同的行

ruby-on-rails - 删除 Postgres 列数据的最有效、最安全的方法