sql >> Databáze >  >> RDS >> PostgreSQL

Je INSERT RETURNING zaručeno, že vrátí věci ve správném pořadí?

Přestože dokumentace není zcela jasná, uvádí, že:

Pokud příkaz INSERT obsahuje klauzuli RETURNING, bude výsledek podobný jako u příkazu SELECT obsahujícího sloupce a hodnoty definované v seznamu RETURNING, vypočítané přes řádky vložené příkazem.

Nyní "podobné" není pevná záruka a vznesl jsem to k diskusi na mailing listu ... ale v praxi se PostgreSQL nebude zahrávat s pořadím hodnot v RETURNING . Je nepravděpodobné, že to někdy budeme moci, i když to budeme chtít kvůli optimalizaci, protože příliš mnoho aplikací spoléhá na to, že budou objednány stejně jako vstup.

Takže... pro INSERT INTO ... VALUES (...), (...), ... RETURNING ... a pro INSERT INTO ... SELECT ... ORDER BY ... RETURNING ... mělo by být bezpečné předpokládat, že výsledná relace je ve stejném pořadí jako vstup.



  1. Instalace R12.2.6 EBS krok za krokem na Virtual Box

  2. 3 otázky týkající se monitorování SQL serveru, které je třeba položit při přebírání pozice DBA

  3. Jak funguje Div() v PostgreSQL

  4. Chyba při instalaci mysql2:Nepodařilo se sestavit nativní rozšíření drahokamů