2016-03-16 1 views
3

Je suis confronté à un problème sur la façon de définir une nouvelle colonne unique en utilisant Oracle 11g.Oracle 11g - ajouter une nouvelle colonne et définir comme unique

J'essaie d'utiliser ce code, mais il se erreur:

ALTER TABLE QAS_ASSIGNED_STATE ADD UNIQUE (cuid); 
+0

Vous essayez d'ajouter une nouvelle colonne (cuid) à la table. Cette colonne devrait avoir une contrainte unique? – jarlh

+0

Copie possible de [Comment utiliser ALTER TABLE pour ajouter une nouvelle colonne et la rendre unique?] (Http://stackoverflow.com/questions/3734891/how-to-use-alter-table-to-add-a- new-column-and-make-it-unique) – Chrisrs2292

+0

@jarlh Je ne suis pas très sûr. Mais ce que je sais, c'est que la table a déjà un identifiant unique (ID) –

Répondre

2

Vous devez définir le type de colonne. Comme ceci:

alter table 
    QAS_ASSIGNED_STATE 
add 
    cuid number NULL; 

puis ajouter la contrainte:

ALTER TABLE QAS_ASSIGNED_STATE ADD CONSTRAINT constraint_cuid UNIQUE (cuid); 
+0

Pouvez-vous ajouter une colonne NOT NULL sans valeur par défaut? – jarlh

+0

Seulement si votre table est vide. Vous avez raison, je vais le réparer. Merci –

+0

@ S.Nadezhnyy comment puis-je ajouter une nouvelle colonne et l'assigner comme unique que la table a déjà une donnée? pouvons-nous faire cela? Je veux dire que la table ne vide pas –