PostgreSQL:从其他表插入


Answers

你可以使用coalesce:

insert into destination select coalesce(field1,'somedata'),... from source;
Question

我试图从另一个表中插入数据到一个表中,并且表中只有一列是相同的。 问题是,TABLE1有不接受空值的列,所以我不能让它们为空,我无法从TABLE2中获取它们。

我有TABLE1:id,col_1(非空),col_2(非空),col_3(非空)

和TABLE2:id,col_a,col_b,col_c

所以我怎样才能将TABLE2中的id插入到TABLE1中,并用“data1”,“data2”,“data3”等硬编码字符串填充col_1-3?

INSERT INTO TABLE1 (id) SELECT id FROM TABLE2 WHERE col_a = "something";

将导致:

错误:列“col_1”中的空值违反了非空约束