我需要一个postgres SQL更新语句,因为我将一个列NAME添加到DATA_MAP_TABLE,我需要在第一次运行更新时填充它以匹配关联的值。 DATA_TABLE中的某些值在其ID和BINARY_MESS的内容中是唯一的,但具有相同的名称。客户4和5都指向它们中的一些,有些是5唯一但共享NAME标签。填充新列后,我将添加一个非空约束。我没有设计这个...我只是想实现一个更新的解决方案..不要拍我......任何和所有帮助都将非常感激!!
DATA_TABLE
ID NAME DATA
1 A <BIN_MESS>
2 B <BIN_MESS>
3 C <BIN_MESS>
4 D <BIN_MESS>
5 E <BIN_MESS>
6 F <BIN_MESS>
7 A <BIN_MESS>
8 D <BIN_MESS>
DATA_MAP_TABLE
ID DATA_ID CUST_ID
1 1 4
2 2 4
3 3 4
4 4 4
5 5 4
6 6 4
7 1 5
8 8 5
9 2 5
10 7 5
答案 0 :(得分:0)
有时只需要以假设的方式看待它就可以看到解决方案:
ALTER TABLE DATA_MAP_TABLE ADD column name character varying(3);
Update DATA_MAP_TABLE SET name = (
Select name from DATA_TABLE where DATA_TABLE.id = DATA_MAP_TABLE.DATA_ID;
);
ALTER TABLE DATA_MAP_TABLE ALTER COLUMN "name" SET not null;