sql >> Databáze >  >> RDS >> Mysql

Aktualizace řádků v jOOQ pomocí spojení

Pravděpodobně si to myslíte, protože neexistuje žádný UpdateJoinStep zadejte podobně jako SelectJoinStep že použití spojení s aktualizacemi není možné v jOOQ. Ale pozor, SelectJoinStep je pouhá pohodlnost. JOIN operátor je operátor, který spojuje dvě tabulky, nikoli klíčové slovo v SQL. Proto jej jOOQ podporuje jako operátor v Table typ. Použití aktualizace SQL jako příklad:

Field<Long> userId = DSL.field("user_nested.id", Long.class);
create
    .update(USER.join(TEAM).on(TEAM.ID.eq(USER.TEAM_ID)))
    .set(USER.NAME, (concat(USER.NAME, "some text")))
    .where(TEAM.STATE.equal("test"))

Výše uvedený tabulkový výraz můžete předat do DSLContext.update(Table) jako každý jiný. Domnívám se, že tím je vaše zbývající otázka zastaralá?




  1. Spuštění dotazu mysql trvá příliš dlouho

  2. MySQL longtext analog v Microsoft SQL?

  3. Jak exportovat tabulku jako CSV s nadpisy na Postgresql?

  4. ActiveRecord::StatementInvalid. Chyba PG