हर्मन के समाधान ने मेरे लिए काम किया, लेकिन ...
मुझे थोड़ा सा मिला दिया था। मैं उस डेमो को शामिल कर रहा हूं, जो मैंने उसके जवाब के आधार पर काम किया था। मेरे जवाब में अतिरिक्त सुविधाओं में विदेशी कुंजी समर्थन, ऑटो इंक्रीमेंट कुंजी, और last_insert_rowid()
फ़ंक्शन का उपयोग लेनदेन में अंतिम ऑटो उत्पन्न कुंजी प्राप्त करना है।
इस जानकारी के लिए मेरी आवश्यकता तब हुई जब मैंने एक लेन-देन मारा, जिसमें तीन विदेशी कुंजियों की आवश्यकता थी, लेकिन मैं केवल अंतिम एक ही प्राप्त कर सका last_insert_rowid()
।
PRAGMA foreign_keys = ON;
PRAGMA temp_store = 2;
CREATE TABLE Foo(
Thing1 INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
);
CREATE TABLE Bar(
Thing2 INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
FOREIGN KEY(Thing2) REFERENCES Foo(Thing1)
);
BEGIN TRANSACTION;
CREATE TEMP TABLE _Variables(Key TEXT, Value INTEGER);
INSERT INTO Foo(Thing1)
VALUES(2);
INSERT INTO _Variables(Key, Value)
VALUES('FooThing', last_insert_rowid());
INSERT INTO Bar(Thing2)
VALUES((SELECT Value FROM _Variables WHERE Key = 'FooThing'));
DROP TABLE _Variables;
END TRANSACTION;