INSERT 语句正在将整数更改为空值

INSERT statement is changing integers to null values

我正在创建一个包含 300 万行数据和 9 列的 table。 我正在使用以下语法插入我的数据。

INSERT INTO myTable
( column1
  column2
  column3
  ...
  column11
  problemColumn
)

Select
<exampleQuery>

1 列(我将其称为 problemColumn)将 120 万个空值插入此 table

当我 运行 exampleQuery 自己(不将其插入 table)时,problemColumn returns 0 个空值。

编辑:一些补充说明:

这可能是数据库中 table 大小的问题吗?我无法理解为什么查询会从插入语句根本改变。

最有可能的原因(我自己做过)是粗手指 - 您插入的列位置错误。没有看到实际代码很难验证,但它可能很简单:

insert into table 
(column1, 
column2)
select
(column2, 
column1)
from somewhere

第二种可能性 - 目标 table 上有一个触发器正在更改数据。我讨厌触发器的众多原因之一。

我不知道 Teradata,但 RDBMS 的要点是能够准确处理这种情况,因此它不太可能与大小有关。要验证这一点,请尝试将查询限制为 1 个结果,然后看看会发生什么。

如果这不起作用,请使用 "values"

将该查询的结果转换为插入语句
INSERT INTO myTable
( column1
  column2
  column3
  ...
  column11
  problemColumn
)
values
(....)