Próbuję utworzyć tabelę z kolumną auto-inkrementacji, jak poniżej. Od Redshift psql nie obsługuje Serial, musiałem użyć IDENTITY data type:Redshift psql auto increment na parzystą liczbę
tożsamości (nasion, krok)
klauzulę, która określa, że kolumna jest kolumną tożsamości. Kolumna IDENTYFIKACJA zawiera unikalne wartości generowane automatycznie. Wartości te rozpoczynają się od wartości określonej jako seed i inkrementacji o liczbę określoną jako step. Typ danych dla kolumny tożsamości musi być albo INT lub BIGINT.`
Moja create table wygląda następująco:
CREATE TABLE my_table(
id INT IDENTITY(1,1),
name CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY(id)
);
Jednak, kiedy próbował wstawić dane do my_table
, zwiększamy tylko wiersze o parzystej liczbie, jak poniżej:
id | name |
----+------+
2 | anna |
4 | tom |
6 | adam |
8 | bob |
10 | rob |
moich wypowiedzi wkładki wyglądają jak poniżej:
INSERT INTO my_table (name)
VALUES ('anna'), ('tom') , ('adam') , ('bob') , ('rob');
Mam również problem z przywróceniem kolumny id, aby rozpocząć od 1. Istnieją rozwiązania dla typu danych SERIAL
, ale nie widziałem żadnej dokumentacji dla IDENTITY
. Wszelkie sugestie będą mile widziane!
dziwne. Wypróbowałem twój kod i nie widzę problemu. Identyfikatory są 1-5. – Anthony
Mam ten sam problem podczas ładowania pliku csv z s3 do redshift. –
Dla przypomnienia mam ten sam problem. Dziwne, jak to nie jest spójne. (Zrobiłem TOŻSAMOŚĆ (0,1), jak powiedział Jorge poniżej, ale drugi powinien być wszystkim, co ma znaczenie: Zastanawiam się, czy jest to błąd regionalny? Jestem na nas-west-2 (Oregon) – Cognitio