488 votes

modifier une colonne pour qu'elle soit annulable

Je veux modifier une colonne de table pour qu'elle soit nullable. J'ai utilisé:

 ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
 

Cela donne une erreur à Modify . Quelqu'un peut-il me dire pourquoi? S'il vous plaît!!

750voto

Quassnoi Points 191041

En supposant que SQL Server (basé sur vos questions précédentes):

 ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
 

Remplacez INT par votre type de données réel.

76voto

djjeck Points 644

S'il s'agissait de syntaxe MySQL, le type aurait été manquant, comme le font remarquer certaines autres réponses. La syntaxe correcte de MySQL aurait été:

 ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
 

Publier ici pour plus de clarté aux utilisateurs de MySQL.

49voto

Igor S. Points 1330

pour les utilisateurs d'Oracle Database 10g:

 alter table mytable modify(mycolumn null);
 

Vous obtenez "ORA-01735: option ALTER TABLE non valide" lorsque vous essayez autrement

 ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
 

8voto

Hammerite Points 10786

Bien que je ne connaisse pas le SGBDR que vous utilisez, vous devez probablement indiquer la spécification complète de la colonne, et pas seulement dire que vous voulez maintenant qu’elle soit annulable. Par exemple, s'il s'agit actuellement de INT NOT NULL , vous devez émettre ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT .

4voto

APC Points 69630

Comme d’autres l’ont observé, la syntaxe précise de la commande varie selon les différentes versions du SGBD. La syntaxe que vous utilisez fonctionne dans Oracle:

 SQL> desc MACAddresses
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COMPUTER                                           NUMBER
 MACADDRESS                                         VARCHAR2(12)
 CORRECTED_MACADDRESS                      NOT NULL VARCHAR2(17)

SQL> alter table MACAddresses
  2       modify corrected_MACAddress null
  3  /

Table altered.

SQL> desc MACAddresses
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 COMPUTER                                           NUMBER
 MACADDRESS                                         VARCHAR2(12)
 CORRECTED_MACADDRESS                               VARCHAR2(17)

SQL>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X