10
votes

Comment utiliser Alter Table pour ajouter une nouvelle colonne et le rendre unique?

Comment utiliser alter Table pour ajouter une nouvelle colonne et le rendre unique?


1 commentaires

Quel serveur de base de données? Plus d'informations s'il vous plaît.


4 Réponses :


20
votes

dépend de la SGBD, mais je pense que ce qui suit est assez portable: xxx

si vous souhaitez donner un nom à la contrainte unique , vous pouvez remplacer la dernière commande avec ceci: xxx


1 commentaires

Par exemple: Alter Tabley Paiements Ajouter une unité NvarchaR2 (128);



5
votes

Si la table est vide xxx

Si vous avez des données dans le tableau, vous en avez besoin en trois étapes:

  1. Ajouter une colonne
  2. Valeurs de remplissage
  3. Ajouter une contrainte unique

2 commentaires

Comme @APC noté, unique permet aux valeurs de NULL NULL , il n'est donc pas nécessaire de le faire en trois étapes s'il existe des données dans la table.


@Daniel, Oracle est autorisé à faire cela, SQL Server NO Autoriser (jusqu'à ce que vous modifiez les paramètres)



1
votes

C'est un processus en deux étapes: ajoutez la nouvelle colonne, puis ajoutez la contrainte. Parce que les contraintes uniques permettent aux NULLS Peu importe si la table est peuplée:

SQL> select count(*) from t23
  2  /

  COUNT(*)
----------
         2


SQL> alter table t23
  2      add new_col number
  3  /

Table altered.

SQL> alter table t23
  2      add constraint t23_uk unique (new_col)
  3  /

Table altered.

SQL>


0 commentaires

2
votes

Vous pouvez le faire avec une seule instruction SQL (au moins avec MySQL):

ALTER TABLE `people` ADD COLUMN `personal_code` VARCHAR(50) UNIQUE AFTER `surname`;


0 commentaires