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".