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?
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:
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
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 .
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
ALTER TABLE tbl ADD id INT PRIMARY KEY AUTO_ incrément;
essayez ceci:
alter table ISSUERECIPT modify column IRCODE int(4) auto_increment
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)
) ;