PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Oznacza UPDATE GDZIE wartość znajduje się w podzapytaniu, które ma GROUP BY, więc nie ma problemów z warunkami wyścigu?

Co powiesz na dodatkową warstwę podzapytań do blokowania?

   UPDATE my_table
      SET processing_by = our_id_info -- unique to this instance
    WHERE trans_nbr IN (
                    SELECT trans_nbr
                      FROM my_table
                     WHERE trans_nbr IN (
                                 SELECT trans_nbr
                                   FROM my_table
                               GROUP BY trans_nbr
                                 HAVING COUNT(trans_nbr) > 1
                                  LIMIT our_limit_to_have_single_process_grab
                                 )
                        FOR UPDATE
                       )
RETURNING row_id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć uniksowy znacznik czasu w PostgreSQL

  2. Importuj zrzut MySQL do bazy danych PostgreSQL

  3. uwierzytelnianie hasła nie powiodło się dla użytkownika ebroot elastic beanstalk

  4. Zapytanie z LEFT JOIN nie zwraca wierszy dla liczby 0

  5. Python postgreSQL sqlalchemy wysyła zapytanie do kolumny DATERANGE