Sequelize upsert

9

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.

%Vor%     
Hussein Al-Far 15.03.2015, 16:38
quelle

5 Antworten

5

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%     
Ian Grainger 09.11.2016 16:12
quelle
3

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.

    
Omar Faroque Anik 23.06.2017 22:14
quelle
2

Janmeier sagte:

Dies wird nur von postgres unterstützt. Um die API über Dialekte hinweg konsistent zu halten, ist dies nicht möglich.

siehe: Ссылка

    
Hussein Al-Far 16.03.2015 07:17
quelle
2

Ich weiß, dass dies ein alter Post ist, aber falls das jemandem hilft

%Vor%     
Matthew Chung 06.07.2017 17:02
quelle
-1

Was ich selbst so gelöst habe:

%Vor%     
thanh1101681 22.12.2015 01:58
quelle

Tags und Links