PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Utilisez JOOQ pour effectuer une suppression en spécifiant plusieurs colonnes dans une clause not in

Votre requête peut être traduite dans le code jOOQ suivant :

// Assuming this:
import static org.jooq.impl.DSL.*;

using(configuration)
   .deleteFrom(MY_TABLE)
   .where(row(MY_TABLE.FIRST, MY_TABLE.LAST).notIn(
        row("Joe", "Smith"),
        row("Mark", "Taylor")
   ))
   .execute();

Ceci utilise DSL.row() pour construire des expressions de valeur de ligne. Notez que ROW est un mot clé facultatif dans PostgreSQL. Vous venez de l'omettre dans votre exemple SQL.

Voir aussi la section du manuel sur le IN prédicat pour degrés> 1 :

http://www .jooq.org/doc/latest/manual/sql-building/conditional-expressions/in-predicate-degree-n