web-dev-qa-db-fra.com

Comment ajouter une colonne de type de données booléen à une table existante en SQL?

J'ai une table appelée person dans ma base de données. Je veux ajouter une autre colonne à la même table et c'est une colonne de type de données booléen. J'ai essayé de suivre les requêtes mais il dit erreur de syntaxe proche de la valeur par défaut. Je sais que c'est une pratique courante et il y a beaucoup de réponses. J'ai essayé beaucoup d'entre eux et je n'ai pas réussi à le faire fonctionner. Alors s'il vous plaît, aidez-moi.

requêtes que j'ai essayées

ALTER TABLE person add column "AdminApproved" BOOLEAN SET default FALSE;
ALTER TABLE person alter column "AdminApproved" BOOLEAN SET default FALSE;         

J'ai essayé sans DÉFINIR mot clé aussi.

8
Mike

Dans SQL SERVER, il s'agit de BIT, mais il permet de stocker NULL

ALTER TABLE person add  [AdminApproved] BIT default 'FALSE';

Il y a aussi d'autres erreurs dans votre requête

  1. Lorsque vous modifiez une table pour ajouter une colonne, pas besoin de mentionner le mot clé column dans l'instruction alter

  2. Pour ajouter une contrainte par défaut, pas besoin d'utiliser le mot clé SET

  3. La valeur par défaut d'une colonne BIT peut être ('TRUE' or '1')/('FALSE' or 0). TRUE ou FALSE doit être mentionné comme string pas comme identifiant

24
Pரதீப்

La réponse donnée par P ரதீப் crée un booléen nullable, pas un booléen, ce qui peut vous convenir. Par exemple, en C #, cela créerait: bool? AdminApprovedne pas bool AdminApproved.

Si vous devez créer un booléen (par défaut false):

    ALTER TABLE person
    ADD AdminApproved BIT
    DEFAULT 0 NOT NULL;
13
MEC