Ich habe die folgende Datenbankstruktur (ausgedrückt in SQLite Dialekt) beinhaltet:Sequelize spezielle Abfrage, die „letzte eingefügte Zeile id“
CREATE TABLE `Clocks` (`_id` INTEGER PRIMARY KEY AUTOINCREMENT, `time` DATETIME);
CREATE TABLE `Operations`
(
`_id` UUID NOT NULL PRIMARY KEY,
`finished` TINYINT(1) NOT NULL DEFAULT 0,
`launchedOn` BIGINT REFERENCES `Clocks` (`_id`) ON DELETE SET NULL ON UPDATE CASCADE,
`finishedOn` BIGINT REFERENCES `Clocks` (`_id`) ON DELETE SET NULL ON UPDATE CASCADE
);
Nun, was ich erreichen möchte in Sequelize.js wie die folgenden SQL aussieht Abfrage in SQLite:
BEGIN TRANSACTION;
INSERT INTO Clocks(time) VALUES (date('now'));
INSERT INTO Operations(_id, finished, userId, launchedOn) VALUES ('00000000-0000-0000-0000-000000000001', 0, last_insert_rowid());
COMMIT;
und folgende:
BEGIN TRANSACTION;
INSERT INTO Clocks(time) VALUES (date('now'));
UPDATE Operations
SET finished = 1,
finishedOn = last_insert_rowid()
WHERE _id = '00000000-0000-0000-0000-000000000001';
COMMIT;
ich habe habe einige inves Tigation mit Sequelize.js, ich habe eine Idee, wie man die oben genannten Transaktionen organisiert, aber ich habe keine Ahnung, wie man last_insert_rowid() in die Liste der eingefügten Elemente aufnimmt. Diese Funktion ist übrigens SQLite-spezifisch, gibt es dafür eine datenbankübergreifende Alternative?
Vielen Dank im Voraus!
Wenden Sie bei beiden Abfragen last_insert_rowid() an, um die ID der zuvor eingefügten Uhr abzurufen? – paolord
Ja, das ist die richtige Antwort ... :) – Lu4