我正在创建一个包含300万行数据和9列的表。 我使用以下语法来插入我的数据。
INSERT INTO myTable
( column1
column2
column3
...
column11
problemColumn
)
Select
<exampleQuery>
1列(我将其称为 problemColumn )在此表中插入120万个空值
当我自己运行 exampleQuery (不将其插入表格)时, problemColumn 会返回0 null值。
编辑:一些额外的说明:
这可能是数据库中表格大小的问题吗?我无法理解为什么查询会从插入语句中发生根本改变。
答案 0 :(得分:0)
最有可能的原因(我自己做的)是肥胖的手指 - 你插入的柱子位置错误。很难在没有看到实际代码的情况下进行验证,但它可能很简单:
insert into table
(column1,
column2)
select
(column2,
column1)
from somewhere
第二种可能性 - 目标表上有一个触发器,它正在改变数据。我讨厌触发的众多原因之一。
我不知道Teradata,但RDBMS的目的是能够正确处理这种情况,所以它与尺寸无关。要验证这一点,请尝试将查询限制为1个结果,并查看会发生什么。
如果这不起作用,请使用“values”
将该查询的结果转换为insert语句INSERT INTO myTable
( column1
column2
column3
...
column11
problemColumn
)
values
(....)