2009-11-13 6 views
2

Notez le tableau ci-dessous. Je veux définir la valeur par défaut pour la colonne BEST_SELLER nouvellement créée à "N".
Comment puis-je faire cela?Comment définir la valeur par défaut d'une colonne?

Create Table Mystery 
(Book_Code Char(4) Primary Key, 
Title Varchar2(40), 
Publisher_Code Char(2), 
Price Number(4,2)) 
+1

IMO Le titre de cette question devrait être changé pour refléter la nature de la bête, pour la postérité. – Dereleased

+0

Quel SQL Server utilisez-vous? – Murph

+0

SQL PLUS. J'ai déjà créé la colonne BEST_SELLER ... – Michael

Répondre

7

Basic MySQL Alter Table commande

Si la colonne n'existe pas:

alter table Mystery add column BEST_SELLER enum('N','Y') default 'N'; 

et si la colonne existe:

alter table Mystery alter column BEST_SELLER set default 'N'; 
0

Si vous avez ajouté la colonne après la table était créé, vous pouvez faire quelque chose de similaire avec l'instruction alter.

alter

5

Je suis une deuxième réponse ajoutant à cause de votre réponse à ma première réponse. Cette réponse s'applique depuis:

  1. Vous utilisez Oracle, et
  2. Vous avez déjà créé la table, vous devez utiliser la syntaxe « ALTER TABLE ».

S'il vous plaît trouver ci-joint les éléments suivants:

alter table 
    mystery 
modify 
    BEST_SELLER char(1) DEFAULT 'N' 

S'il vous plaît modifier le type char(1) à ce que la colonne est en réalité. Après l'exécution de cette requête pour corriger la table, vous devrez émettre une deuxième requête pour mettre à jour les lignes existantes, telles que:

UPDATE 
    mystery 
SET 
    BEST_SELLER = 'N' 
WHERE 
     BEST_SELLER = '' 
    OR BEST_SELLER IS NULL 

Hope this helps.

+1

Cela remplira-t-il alors les lignes existantes? – Murph

+0

Rien d'abord, vous devrez émettre une requête de mise à jour générale comme: UPDATE mystery SET BEST_SELLER = 'N' WHERE BEST_SELLER = '' OU BEST_SELLER IS NULL' (basé sur ma connaissance de la syntaxe MySQL, bien que je pense que c'est assez générique pour porter à oracle), mais la valeur par défaut devrait vous prouver l'avenir dans cette situation. – Dereleased

+0

MERCI TRAVAILLÉ MERVEILLEUSEMENT! – Michael

Questions connexes