0
创建两个表格,其中某些ID重叠。奇怪的DB2作用域
create table outer_table (
id integer,
overlap_in smallint default 0
);
create table inner_table (
inner_id integer
);
接下来,用ID填充它们,一些常见的。
insert into outer_table(id) values 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
insert into inner_table(inner_id) values 0, 1, 2;
接下来,更新重叠指示符。但是,错误地,你输入错误的列名称,你只写“id”而不是“inner_id”,并且你决定不使用别名。
update outer_table o
set o.overlap_in = 1
where o.id in (select id from inner_table);
结果:
- 没有SQL错误
- 它在outer_table
更新中的所有行overlap_in场1这是怎么回事,甚至正常的吗?任何解释为什么db2允许这样做?
注:DB2版本:
>db2level
DB21085I Instance "....." uses "64" bits and DB2 code release "SQL09075"
with level identifier "08060107".
Informational tokens are "DB2 v9.7.0.5", "...", "IP23285", and Fix Pack
"5".