如何在 PostgreSQL 中将 union tables 插入到 table?
How can I insert union tables to table in PostgreSQL?
我有这个查询并将行插入到 MYSQl 数据库并且工作完美。
insert int test(id,user)
select null,user from table2
union
select null,user from table3
但是当 运行 时,以上查询在 PostgreSQL 中不起作用。我收到此错误 column "id" is of type integer but expression is of type text
,但是当我 运行 下面显示的两个查询有效时。
当我在 PostgreSQL 中 运行 下面查询时,它工作正常:
insert into test(id,user)
select null,user from table2
或在 PostgreSQL 中以下查询正常工作:
insert int test(id,user)
select null,user from table3
或在 PostgreSQL 中以下查询正常工作:
select null,user from table2
union
select null,user from table3
null
不是实际值,因此没有数据类型。默认的 assumed 数据类型是 text
,这就是错误消息的来源。只需在第一个 SELECT:
中将值转换为 int
insert into test(id, "user")
select null::int, "user" from table2
union
select null, "user" from table3
或者更好的是,完全省略 id
,以便使用为 id
列定义的任何默认值。尝试将 null
插入名为 id
的列中听起来很奇怪
insert into test("user")
select "user" from table2
union
select "user" from table3
请注意,user
是保留关键字和内置函数,因此您必须将其引用以避免出现问题。在长 运行 中,我建议为该列找到一个不同的名称。
我有这个查询并将行插入到 MYSQl 数据库并且工作完美。
insert int test(id,user)
select null,user from table2
union
select null,user from table3
但是当 运行 时,以上查询在 PostgreSQL 中不起作用。我收到此错误 column "id" is of type integer but expression is of type text
,但是当我 运行 下面显示的两个查询有效时。
当我在 PostgreSQL 中 运行 下面查询时,它工作正常:
insert into test(id,user)
select null,user from table2
或在 PostgreSQL 中以下查询正常工作:
insert int test(id,user)
select null,user from table3
或在 PostgreSQL 中以下查询正常工作:
select null,user from table2
union
select null,user from table3
null
不是实际值,因此没有数据类型。默认的 assumed 数据类型是 text
,这就是错误消息的来源。只需在第一个 SELECT:
int
insert into test(id, "user")
select null::int, "user" from table2
union
select null, "user" from table3
或者更好的是,完全省略 id
,以便使用为 id
列定义的任何默认值。尝试将 null
插入名为 id
insert into test("user")
select "user" from table2
union
select "user" from table3
请注意,user
是保留关键字和内置函数,因此您必须将其引用以避免出现问题。在长 运行 中,我建议为该列找到一个不同的名称。