Ich muss die ID für den eingefügten / aktualisierten Datensatz erhalten, wenn .upsert()
in Sequelize verwendet wird.
Im Moment gibt .upsert()
einen booleschen Wert zurück, der angibt, ob die Zeile erstellt oder aktualisiert wurde.
Ich wollte das hochgeladene oder aktualisierte Objekt zurückgeben. Es ist nicht, weil nur PGSQL es anscheinend direkt unterstützt.
Also habe ich eine naive Implementierung erstellt, die - wahrscheinlich auf nicht-performante Weise und möglicherweise mit allen möglichen Rassenbedingungen - das tut:
%Vor%Verwendung beim Versuch, einen Zug in einem Spiel zu erstellen / zu aktualisieren (konstruierter Beispielalarm!):
%Vor%Das hat bei mir funktioniert:
%Vor%Er überprüft db anhand Ihres Primärschlüssels. Wenn es dann gefunden wird, wird es die Daten aktualisieren, andernfalls wird es eine neue Zeile erstellen / in eine neue Zeile einfügen.
Janmeier sagte:
Dies wird nur von postgres unterstützt. Um die API über Dialekte hinweg konsistent zu halten, ist dies nicht möglich.
siehe: Ссылка
Ich weiß, dass dies ein alter Post ist, aber falls das jemandem hilft
%Vor%Tags und Links node.js sequelize.js