PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So aktualisieren Sie mehrere nicht duplizierte Zeilen gleichzeitig mit Gruppieren nach

Innerhalb der Schleife könnten Sie eine Zufallszahl ziehen und sie nur einfügen (und den Schleifenzähler dekrementieren), wenn sie nicht existiert. Pseudocode :

while (counter > 6) 
loop:
  this = 1+ random() *1000
  insert into weighed_directed_edge (startpoint, endpoint, costs)
  VALUES ( :frompoint, :this, xxx* random() )
  WHERE NOT EXISTS (
    SELECT(*) FROM weighed_directed_edge nx
    WHERE nx.startpoint = :frompoint
    AND nx.endpoint = :this
    );

  if (rowcount > 0) counter -= 1;
end loop;