我在 Windows 上使用 PostgreSQL 9.1。
我正在自动将数据从机器收集到 PostgreSQL 数据库中,并且工作正常。数据保存在几个表中,我感兴趣的一个叫做testrecord
. 我有第二个静态表调用testcode
和表之间的连接。我想在其中选择一些传入数据testrecord
并填充一个名为 的新表finaldata
,其中有一个匹配项,parameter
并且该表testid
不为空(null)。
问题 1
INSERT INTO
这样做是JOIN
最好的方法吗?
问题2
目前所有的字段都是varchar。当我在表中添加一个整数字段finaldata
(例如自动递增序列)时,我会收到诸如column "FdataID" is of type integer but expression
is of type character varying
或column "FdataID" is of type integer
but expression is of type record
我的函数的代码如下:
INSERT INTO finaldata
SELECT
"testrecord"."Record",
"testrecord"."Sample",
"testrecord"."SampleOrig",
"testrecord"."Parameter",
"testrecord"."Result",
"testrecord"."ResultOrig",
"testrecord"."Units",
"testrecord"."OperatorID",
"testrecord"."ObsTime",
"testrecord"."MsgTime",
"testcode"."Machine",
"testcode"."TestName",
"testcode"."ShortTestName",
"testcode"."TestID"
FROM testrecord
LEFT OUTER JOIN testcode
ON ("testrecord"."Parameter" = "testcode"."Parameter")
AND ("testrecord"."Machine" = "testcode"."Machine")
WHERE ("testcode"."TestID") IS NOT NULL;