mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-12874 UPDATE statements with the same source and target
This commit is contained in:
committed by
Sergei Golubchik
parent
26ff92f7ac
commit
1a74d12da6
@ -943,74 +943,6 @@ create table t3 (col1 datetime not null);
|
||||
create view v1 as select * from t1;
|
||||
create view v2 as select * from v1;
|
||||
create view v3 as select v2.col1 from v2,t2 where v2.col1 = t2.col1;
|
||||
update v2 set col1 = (select max(col1) from v1);
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v2'
|
||||
update v2 set col1 = (select max(col1) from t1);
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v2'
|
||||
update v2 set col1 = (select max(col1) from v2);
|
||||
ERROR HY000: Table 'v2' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update v2,t2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v2'
|
||||
update t1,t2 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't1'
|
||||
update v1,t2 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1;
|
||||
ERROR HY000: Table 'v1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update t2,v2 set v2.col1 = (select max(col1) from v1) where v2.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't2'
|
||||
update t2,t1 set t1.col1 = (select max(col1) from v1) where t1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't2'
|
||||
update t2,v1 set v1.col1 = (select max(col1) from v1) where v1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't2'
|
||||
update v2,t2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v2'
|
||||
update t1,t2 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
||||
ERROR HY000: Table 't1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update v1,t2 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v1'
|
||||
update t2,v2 set v2.col1 = (select max(col1) from t1) where v2.col1 = t2.col1;
|
||||
ERROR HY000: Table 't2' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update t2,t1 set t1.col1 = (select max(col1) from t1) where t1.col1 = t2.col1;
|
||||
ERROR HY000: Table 't2' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update t2,v1 set v1.col1 = (select max(col1) from t1) where v1.col1 = t2.col1;
|
||||
ERROR HY000: Table 't2' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update v2,t2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1;
|
||||
ERROR HY000: Table 'v2' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
update t1,t2 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't1'
|
||||
update v1,t2 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v1'
|
||||
update t2,v2 set v2.col1 = (select max(col1) from v2) where v2.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't2'
|
||||
update t2,t1 set t1.col1 = (select max(col1) from v2) where t1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't2'
|
||||
update t2,v1 set v1.col1 = (select max(col1) from v2) where v1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 't2'
|
||||
update v3 set v3.col1 = (select max(col1) from v1);
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 'v3'
|
||||
update v3 set v3.col1 = (select max(col1) from t1);
|
||||
ERROR HY000: The definition of table 'v3' prevents operation UPDATE on table 'v3'
|
||||
update v3 set v3.col1 = (select max(col1) from v2);
|
||||
ERROR HY000: The definition of table 'v2' prevents operation UPDATE on table 'v3'
|
||||
update v3 set v3.col1 = (select max(col1) from v3);
|
||||
ERROR HY000: Table 'v3' is specified twice, both as a target for 'UPDATE' and as a separate source for data
|
||||
delete v2 from v2,t2 where (select max(col1) from v1) > 0 and v2.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 'v2'
|
||||
delete t1 from t1,t2 where (select max(col1) from v1) > 0 and t1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 't1'
|
||||
delete v1 from v1,t2 where (select max(col1) from v1) > 0 and v1.col1 = t2.col1;
|
||||
ERROR HY000: Table 'v1' is specified twice, both as a target for 'DELETE' and as a separate source for data
|
||||
delete v2 from v2,t2 where (select max(col1) from t1) > 0 and v2.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 'v2'
|
||||
delete t1 from t1,t2 where (select max(col1) from t1) > 0 and t1.col1 = t2.col1;
|
||||
ERROR HY000: Table 't1' is specified twice, both as a target for 'DELETE' and as a separate source for data
|
||||
delete v1 from v1,t2 where (select max(col1) from t1) > 0 and v1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v1' prevents operation DELETE on table 'v1'
|
||||
delete v2 from v2,t2 where (select max(col1) from v2) > 0 and v2.col1 = t2.col1;
|
||||
ERROR HY000: Table 'v2' is specified twice, both as a target for 'DELETE' and as a separate source for data
|
||||
delete t1 from t1,t2 where (select max(col1) from v2) > 0 and t1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 't1'
|
||||
delete v1 from v1,t2 where (select max(col1) from v2) > 0 and v1.col1 = t2.col1;
|
||||
ERROR HY000: The definition of table 'v2' prevents operation DELETE on table 'v1'
|
||||
insert into v2 values ((select max(col1) from v1));
|
||||
ERROR HY000: The definition of table 'v1' prevents operation INSERT on table 'v2'
|
||||
insert into t1 values ((select max(col1) from v1));
|
||||
@ -2024,8 +1956,6 @@ create view v1 as select f59, f60 from t1 where f59 in
|
||||
(select f59 from t1);
|
||||
update v1 set f60=2345;
|
||||
ERROR HY000: The target table v1 of the UPDATE is not updatable
|
||||
update t1 set f60=(select max(f60) from v1);
|
||||
ERROR HY000: The definition of table 'v1' prevents operation UPDATE on table 't1'
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
create table t1 (s1 int);
|
||||
|
Reference in New Issue
Block a user