Use*_*ame 6 postgresql foreign-keys
我有两个桌子。
表a
看起来像这样-第一行是列名,都包含字符:
id | tractce | someString
1 | "0011900" | "Label here"
Run Code Online (Sandbox Code Playgroud)
表b
:
id | tractFIPS
1 | "0011900"
Run Code Online (Sandbox Code Playgroud)
如何转换a.tractce
为外键列引用b.id
?
因此,它是:
id | tractce | someString
1 | 1 | "Label here"
Run Code Online (Sandbox Code Playgroud)
只要表中没有任何恶意数据,这就会添加约束:
ALTER TABLE TableName
ADD CONSTRAINT fk_Name
FOREIGN KEY (ColumnName)
REFERENCES TableName(ColumnName);
Run Code Online (Sandbox Code Playgroud)
你不能一步做到这一点。您需要先添加一个可以保存 table 主键的新列b
,然后更新 table a
,然后添加外键并删除旧列:
alter table a add b_id int;
update a
set b_id = b.id
from b
where a.tractce = b.tractfips;
alter table a drop column tractce;
alter table a add constraint fk_a_b foreign key (b_id) references b;
Run Code Online (Sandbox Code Playgroud)
在线示例:http : //rextester.com/LPWNHK59722
归档时间: |
|
查看次数: |
2188 次 |
最近记录: |