Modifier une colonne de table avec incrément automatique de 1 dans le derby

j'ai créé une table dans Derby Netbeans et maintenant je me rends compte que je dois faire une colonne comme auto incrémenté par 1 qui est une clé primaire . Comment puis-je le faire? J'ai essayé le code suivant, mais en vain.

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;

est-ce que je dois créer la table une fois de plus ou peut-il être possible d'une autre manière?

10
demandé sur Nitesh Verma 2013-01-14 13:53:43

7 réponses

j'ai trouvé une solution alternative, j'ai fait tomber la colonne de la base de données (merci vels4j) a ajouté la colonne encore une fois à partir de l'UI netbeans derby comme indiqué ci-dessous:

enter image description here

9
répondu Nitesh Verma 2013-01-14 11:53:18

Cochez cette

ALTER TABLE ISSUERECIPT 
ALTER IRCODE INTEGER NOT NULL 
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1);

si votre table est vide, essayez

ALTER TABLE DROP  PRIMARY KEY your_primaryKeyContrainName ; 
ALTER TABLE ISSUERECIPT DROP COLUMN IRCODE ;
ALTER TABLE ISSUERECIPT ADD COLUMN 
IRCODE PRIMARY KEY INTEGER NOT NULL 
GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1);

Voir Aussi: Derby ALTER TABLE Syntax

3
répondu vels4j 2013-01-14 10:34:08

pour modifier la colonne pour qu'elle soit générée automatiquement, le code est

ALTER TABLE ISSUERECIPT ALTER IRCODE SET INCREMENT BY 1;

mais la colonne doit déjà être définie avec l'attribut IDENTITY (comme écrit dans cette documentation ).

dans la plupart des cas (en supposant que vous aussi), la colonne de la clé primaire n'est pas définie comme identité. Par conséquent, vous pouvez avoir l'intention de modifier la colonne à L'identité, mais c'est impossible.

le seul moyen est de laisser tomber la table et le créer à nouveau, comme écrit ici .

3
répondu FaizFizy Rosle 2017-05-23 12:24:16
ALTER TABLE ISSUERECIPT  ADD IRCODE INTEGER NOT NULL primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),

je suppose que pourraient faire les choses pour vous

2
répondu arvin_codeHunk 2013-01-14 10:16:51

ALTER TABLE tbl ADD id INT PRIMARY KEY AUTO_ incrément;

1
répondu Naveen Bangwal 2013-01-14 10:00:59

essayez ceci:

alter table ISSUERECIPT modify column IRCODE int(4) auto_increment
0
répondu Asmita 2013-01-14 09:57:44

recréer le tableau de nouveau voir l'exemple ci-dessous:

CREATE TABLE students
(
id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
name VARCHAR(24) NOT NULL,
address VARCHAR(1024),
CONSTRAINT primary_key PRIMARY KEY (id)
) ;
-1
répondu Michael Karaz 2016-06-15 10:12:32