Ich versuche, eine Tabelle mit einer Auto-Inkrement-Spalte wie folgt zu erstellen. Da Rotverschiebung psql SERIAL nicht unterstützt, musste ich IDENTITY data type verwenden:Redshift psql auto Inkrement auf gerade Zahl
IDENTITY (Samen, Stufe)
Klausel, die die Spalte gibt an, dass eine Identitätsspalte ist. Eine IDENTITY-Spalte enthält eindeutige automatisch generierte Werte. Diese Werte beginnen mit dem als Startwert angegebenen Wert und werden um die als Schritt angegebene Anzahl erhöht. Der Datentyp für eine Identity-Spalte muss entweder INT oder BIGINT.`
Anweisung create table Mein sieht wie folgt aus:
CREATE TABLE my_table(
id INT IDENTITY(1,1),
name CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY(id)
);
Allerdings, wenn ich versucht, Daten in my_table
einfügen, Zeilen erhöhen nur auf die gerade Zahl, wie unten:
id | name |
----+------+
2 | anna |
4 | tom |
6 | adam |
8 | bob |
10 | rob |
Meine Insert-Anweisungen aussehen wie unten:
INSERT INTO my_table (name)
VALUES ('anna'), ('tom') , ('adam') , ('bob') , ('rob');
Ich habe auch Probleme mit dem Zurückbringen der ID-Spalte, um mit 1 zu beginnen. Es gibt Lösungen für SERIAL
Datentyp, aber ich habe keine Dokumentation für IDENTITY
gesehen. Alle Vorschläge würden sehr geschätzt werden!
Schräge. Ich habe Ihren Code ausprobiert und sehe das Problem nicht. Die IDs sind 1-5. – Anthony
Ich habe das gleiche Problem beim Laden einer CSV-Datei von S3 auf Rotverschiebung. –
Für die Aufzeichnung habe ich das gleiche Problem. Seltsam, wie es nicht konsistent ist. (Ich habe IDENTITY (0,1) wie der Jorge sagte unten, aber die zweite 1 sein sollte alles, was zählt. Ich frage mich, ob es eine regionale Bug? Ich bin auf uns-West-2 (Oregon) – Cognitio