Redshift psql incrément automatique sur le même numéro
Je suis en train de créer une table avec un auto-incrémentée comme ci-dessous. Depuis Redshift psql ne supporte pas la SÉRIE, j'ai dû utiliser Les données d'IDENTITÉ de type:
IDENTITÉ(semences, l'étape)
La Clause qui spécifie que la colonne est une colonne d'IDENTITÉ. Une colonne d'IDENTITÉ contient un unique auto-généré valeurs. Ces valeurs commencer avec la valeur spécifiée comme une graine et d'incrément par le nombre spécifié comme étape. Le type de données pour une colonne d'IDENTITÉ doit être de type INT ou BIGINT.`
Mon instruction create table ressemble à ceci:
CREATE TABLE my_table(
id INT IDENTITY(1,1),
name CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY( id )
);
Cependant, quand j'ai essayé d'insérer des données dans my_table
, les lignes incrément seulement sur le même numéro, comme ci-dessous:
id | name |
----+------+
2 | anna |
4 | tom |
6 | adam |
8 | bob |
10 | rob |
Mon insert ressembler à ci-dessous:
INSERT INTO my_table ( name )
VALUES ( 'anna' ), ('tom') , ('adam') , ('bob') , ('rob' );
Je suis aussi de la difficulté avec l'entrée de l'id de la colonne de commencer avec 1. Il existe des solutions pour SERIAL
type de données, mais je n'ai pas vu toute la documentation pour IDENTITY
.
Toutes les suggestions seront très appréciés!
- Bizarre. J'ai essayé votre code et je ne vois pas le problème. Les identifiants sont 1-5.
- J'ai le même problème lors du chargement d'un fichier csv à partir de s3 de redshift.
- Pour l'enregistrement, j'ai le même problème. Étrange la façon dont il n'est pas cohérent. (Je n'ai IDENTITÉ(0,1) comme Jorge dit ci-dessous, mais la seconde étant de 1 devrait être tout ce qui compte. Je me demande si ses régional bug? Je suis sur nous-ouest-2 (Oregon)
- J'ai le même problème aussi:
CREATE TABLE temp ( id bigint IDENTITY(0,1), val varchar(255) ); INSERT INTO temp (val) values ('a'), ('b'), ('c');
me donne l'ordre croissant de valeurs, en commençant par 0.
Vous devez vous connecter pour publier un commentaire.
Vous devez définir votre identité comme suit:
Source: http://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_examples.html
Et vous ne pouvez pas réinitialiser l'id à 0. Vous devrez supprimer la table et de créer de nouveau.
Cette question est examinée en détail dans AWS forum.
https://forums.aws.amazon.com/message.jspa?messageID=623201
La réponse de l'AWS.
Également plusieurs nœuds semble provoquer un tel effet avec colonne d'IDENTITÉ. En substance, il ne peut vous fournir la garantie des Identifiants uniques.
Définir votre
seed
de la valeur à1
et votrestep
de la valeur à1
.Create table
Insérer des lignes
Résultats
Pour une raison quelconque, si vous définissez votre
seed
de la valeur à0
et votrestep
de la valeur à1
alors l'entier va augmenter dans les étapes de2
.Create table
Insérer des lignes
Résultats