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 时问题列被正确定义为整数
- problemColumn 有 300,000 个不同的值。每个值在 table 中至少出现一次,这意味着它不可能是格式不正确的值
的问题
- 没有明显的值被系统删除的模式
编辑:一些补充说明:
- 没有对 problemColumn 进行任何计算或连接。我只是从另一个 table
中选择那个变量
- problemColumn是源中的一个整数table,所以不是变量类型不匹配的问题
这可能是数据库中 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
(....)
我正在创建一个包含 300 万行数据和 9 列的 table。 我正在使用以下语法插入我的数据。
INSERT INTO myTable
( column1
column2
column3
...
column11
problemColumn
)
Select
<exampleQuery>
1 列(我将其称为 problemColumn)将 120 万个空值插入此 table
当我 运行 exampleQuery 自己(不将其插入 table)时,problemColumn returns 0 个空值。
- 创建 table 时问题列被正确定义为整数
- problemColumn 有 300,000 个不同的值。每个值在 table 中至少出现一次,这意味着它不可能是格式不正确的值 的问题
- 没有明显的值被系统删除的模式
编辑:一些补充说明:
- 没有对 problemColumn 进行任何计算或连接。我只是从另一个 table 中选择那个变量
- problemColumn是源中的一个整数table,所以不是变量类型不匹配的问题
这可能是数据库中 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
(....)