(8.0.31)
drop table tab1;
drop table tab2;
create table tab1(col1 varchar(10), col2 int);
create table tab2(col1 varchar(10), col2 int);
insert into tab1 values('a',1);
insert into tab2 values('a',1);
insert into tab2 values('b',(select count(*) from tab1) );
insert into tab2 values('c',(select count(*) from tab2) );
→ ERROR 1093 (HY000): You can't specify target table 'tab2' for update in FROM clause
select * from tab2;
参照テーブルが他の場合に限り可能★
(19c)
drop table tab1 purge;
drop table tab2 purge;
create table tab1(col1 varchar2(10), col2 int);
create table tab2(col1 varchar2(10), col2 int);
insert into tab1 values('a',1);
insert into tab2 values('a',1);
commit;
insert into tab2 values('b',(select count(*) from tab1) );
insert into tab2 values('c',(select count(*) from tab2) );
commit;
select * from tab2;
参照テーブルが自他ともに可能
(15)
drop table tab1;
drop table tab2;
create table tab1(col1 varchar(10), col2 int);
create table tab2(col1 varchar(10), col2 int);
insert into tab1 values('a',1);
insert into tab2 values('a',1);
insert into tab2 values('b',(select count(*) from tab1) );
insert into tab2 values('c',(select count(*) from tab2) );
select * from tab2;
参照テーブルが自他ともに可能
(2019)
drop table tab1;
drop table tab2;
create table tab1(col1 varchar(10), col2 int);
create table tab2(col1 varchar(10), col2 int);
insert into tab1 values('a',1);
insert into tab2 values('a',1);
insert into tab2 values('b',(select count(*) from tab1) );
insert into tab2 values('c',(select count(*) from tab2) );
select * from tab2;
参照テーブルが自他ともに可能