Workaround for MySQL’s “can’t specify target table for update in FROM clause” Error

0
451

jOOQ workaround for "can't specify target table for update in FROM clause"

In MySQL, you cannot do this:

create table t (i int primary key, j int);
insert into t values (1, 1);

update t
set j = (select max(j) from t) + 1;

The UPDATE statement will raise an error as follows:

SQL Error [1093] [HY000]: You can’t specify target table ‘t’ for update in FROM clause

People have considered this to be a bug in MySQL for ages, as most other RDBMS can do this without any issues, including MySQL clones:

  • MariaDB 10.2
  • SingleStore 6 (previously known as MemSQL)

Luckily, jOOQ can easily transform such queries for you, whenever you’re trying to UPDATE or DELETE a target table, with a predicate that depends on the target table itself. In those cases, jOOQ will just apply the following workaround:

update t
set j = (
  select *
  from (
    select max(j) from t
  ) t
) + 1;

Now, the query works without any syntactic issues. Similar workarounds are documented in the MySQL docs, but with jOOQ, you simply don’t have to think about this limitation.

Published by lukaseder

I made jOOQ

Спонсоры
Спонсоры
Спонсоры
Спонсоры
Спонсоры
Поиск
Спонсоры
Virtuala FansOnly
CDN FREE
Cloud Convert
Категории
Больше
Главная
Asbestentfernung für Gewerbe – Sicher nach TRGS 519
Fachgerechte Asbestentfernung nach TRGS 519 für Gewerbe. Sicherheit & gesetzliche...
От Shabirkhan 7sk 2025-07-22 05:02:46 0 701
Art
iPhone 17 Quiz: Wie gut kennen Sie Apples nächstes Smartphone?
## Einführung Die Welt der Smartphones ist ständig im Wandel, und Apple bleibt dabei nicht...
От Nele Nika 2025-09-04 13:05:19 1 388
Art
# Клавиатура с лентой: Зачем нам это нужно?
Клавиатура, лента, звук, Меллотрон, 1960-е, музыка, ностальгия, технологии, звукозапись ##...
От إدوارد ليونيد 2025-08-04 16:05:22 1 178
Art
Lauma – Genshin Impact
Genshin Impact, Nod-Krai, Lauma, Spiel-Updates, Video-Games, Emotionale Geschichten, Traurige...
От Melina Mathilda 2025-09-10 05:05:20 1 247
Спонсоры
Virtuala FansOnly https://virtuala.site