家伙.我有一个查询,旨在从一个表中获取结果并将其插入另一个表.它看起来像这样:
INSERT INTO minutes_deleted
SELECT * FROM minutes
WHERE minutes_id = 103
Run Code Online (Sandbox Code Playgroud)
现在,我甚至不知道你可以尝试插入那样的东西.(我认为插入语句都有语法INSERT INTO blah VALUES (some values),但在阅读手册后我发现你可以.
现在,问题在于这会产生错误:column "meeting_id" is of type integer but expression is of type character varying我认为发生此错误是因为列的minutes_deleted顺序与其中的顺序不同minutes_id.
minutes_deleted还有一些找不到的minutes列,但是所有列minutes都可以找到minutes_deleted,但是在混乱的顺序中.
根据手册,表中包含填充内容的所有列(即minutes_deleted必须给出一个值,如果我可以通过列顺序,查询可能仍会因此而失败.
那么,如果您愿意,可以提出以下两个简
1) - 我如何重新排列列的顺序,所以它的工作原理.
2) - 如何为minutes_deleted不存在的列指定空值minutes?
非常感谢你的帮助.
您的问题是您的目标和源表没有相同的列数据类型.
要解决此问题,请在您的目标和来源的列顺序中明确说明.
INSERT INTO MyDestination ( Column1, Column2, Column3)
SELECT ColumnA,
ColumnB,
ColumnC
FROM MySource;
Run Code Online (Sandbox Code Playgroud)
在您需要适合目的地时应用转换/转换.