2016-12-06 5 views
0

Ich habe eine Datenbank in SQLite, die ich verwende, um Informationen zu Restaurants für eine Website zu speichern.Wie kann ich die letzte ID der SQLite-Datenbank kennen?

Die Website ermöglicht es Benutzern, neue Restaurants in die Datenbank (über PHP) einzufügen.

Meine Frage ist, da jede Zeile in einer Tabelle in der Datenbank ihr ID-Attribut hat (was der Primärschlüssel ist), wie kann ich wissen, welche ID das nächste Element, das ich in der Datenbank speichern soll ?

Wenn das letzte zur Datenbank hinzugefügte Element die ID 50 hat, dann sollte das nächste Restaurant, das ein Benutzer hinzufügen möchte, die ID 51 haben, aber wie kann ich darauf zugreifen?

Hier ist meine SQLite Restaurant Tabelle:

CREATE TABLE Restaurant (
    id NUMBER PRIMARY KEY NOT NULL, 
    name NVARCHAR2(20) NOT NULL, 
    description NVARCHAR2(20), 
    address NVARCHAR2(20) NOT NULL, 
    priceRange NUMBER NOT NULL REFERENCES PriceRange(id) ON DELETE SET NULL ON UPDATE CASCADE 
); 

Vielen Dank im Voraus!

+0

Es klingt wie Sie versuchen, Primärschlüsselwerte manuell zu verwalten. Gibt es einen Grund, warum du das tust? Warum lassen Sie die Datenbank nicht für Sie erledigen? – Chris

Antwort

1

Da Sie die Frage mit markiert haben, sollten Sie SQLite3::lastInsertRowID() verwenden können.

Alternativ ist eine reine SQLite-Lösung die last_insert_rowid()-Funktion.

+0

Dies gibt die ID der Zeile, die Sie gerade eingefügt haben, nicht die ID, die Sie auf der ** nächsten ** einfügen bekommen. – Dekel

+1

Wahr. Die Frage ist insofern ambivalent, als ... der Titel eine Sache sagt, der Inhalt eine andere; Das Endziel kann sogar eine dritte Sache sein. – Narf

+0

Nicht wahr. Innerhalb der OP-Frage können Sie sehen, "wie kann ich wissen, welche ID sollte der nächste Artikel, den ich in der Datenbank speichern werde" – Dekel

Verwandte Themen