Insert-Anweisung bat mich zu legen für die autoincrement-Spalte
Verwende ich PostgreSQL, ich habe die folgende Tabelle:
CREATE TABLE "Task"
(
"taskID" serial NOT NULL,
"taskType" text NOT NULL,
"taskComment" text NOT NULL,
"taskDate" date NOT NULL,
CONSTRAINT "Task_pkey" PRIMARY KEY ("taskID")
)
Legte ich taskID als serial
Daten-Typ werden automatisch hochgezählt. Jetzt bin ich verwirrt, wie die INSERT
Aussage, als die erste Spalte in der Tabelle soll automatisch hochgezählt werden, aber INSERT
Anweisung gebeten, mir das einfügen eines Wertes von mir! Irgendeine Idee?
Hier meine insert-Anweisung:
INSERT INTO "Task" VALUES ('HomeWork', 'No Comment', '3/3/2013');
bitte zeigen Sie uns die insert-Anweisung als auch
Wie kann ein Programmierer die Frage ohne zeigt die
Hinzugefügt es.
Es ist jetzt eine gute Frage. Während weitgehend irrelevant, in diesem Fall PostgreSQL version sollte immer enthalten sein.
Wie kann ein Programmierer die Frage ohne zeigt die
INSERT
Aussage?Hinzugefügt es.
Es ist jetzt eine gute Frage. Während weitgehend irrelevant, in diesem Fall PostgreSQL version sollte immer enthalten sein.
InformationsquelleAutor Aan | 2013-03-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
@mvp ' s Antwort deckt dies ziemlich viel. Außer für den Fall, dass Sie (zu) fügen Sie die
id
Spalte in der Spaltenliste aus irgendeinem Grund. Dann können Sie das key-word -DEFAULT
standardmäßig für den angegebenen default-Wert. Ja, viele der "Standard" in diesem Satz, aber es sollte richtig sein. 🙂Hättest du auch eine bessere Verwendung der ISO-8601-Datumsformat (
YYYY-MM-DD
), Werke, die unabhängig von den lokalen Einstellungen ab. Ihre Regional gültigen format ist anfällig für Bruch.Jedoch, wenn Sie die Entfernung selbst von der Torheit zu verwenden gemischte groß-und Kleinschreibung von Bezeichnern, um mit zu beginnen, Ihr Leben in PostgreSQL wird viel einfacher:
Oder besser:
InformationsquelleAutor Erwin Brandstetter
Sollten Sie NICHT Liste dieser auto-increment-Spalte in
INSERT
- Anweisung, und es wird so funktionieren wie Sie es erwarten:Wenn Sie die Liste in
INSERT
Sie müssen, um sicherzustellen, dass die angegebenen Werte nicht in Konflikt mit einer Werte verwendet, die im Allgemeinen schwierig sein wird, zu erfüllen, es sei denn Sie nutzen konsequentnextval('some_sequence')
.InformationsquelleAutor mvp