Bien que je ne sache pas quel SGBDR vous utilisez, vous devez probablement donner la spécification de la colonne entière, pas seulement dire que vous voulez maintenant qu'il soit annulable. Par exemple, si c'est actuellement INT NOT NULL, vous devez émettre ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.
Ceci est une réponse correcte et descriptive, il suffit donc de clarifier si Null| NOT NULLn'est pas spécifié, la colonne sera nullable.
Hamid Heydarian
4
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 NOTNULL VARCHAR2(17)
SQL>altertable MACAddresses
2 modify corrected_MACAddress null3/Table altered.
SQL>desc MACAddresses
Name Null? Type
----------------------------------------- -------- ----------------------------
COMPUTER NUMBER
MACADDRESS VARCHAR2(12)
CORRECTED_MACADDRESS VARCHAR2(17)
SQL>
ALTERTABLE Merchant_Pending_Functions MODIFY COLUMN`NumberOfLocations` INT null;
Cela fonctionnera pour vous.
Si vous souhaitez modifier une colonne non nulle pour autoriser null, pas besoin d'inclure une clause non null. Parce que les colonnes par défaut ne sont pas nulles.
Réponses:
En supposant
SQL Server
(basé sur vos questions précédentes):Remplacez
INT
par votre type de données réel.la source
pour les utilisateurs d'Oracle Database 10g:
Vous obtenez "ORA-01735: option ALTER TABLE invalide" lorsque vous essayez autrement
la source
S'il s'agissait de la syntaxe MySQL, le type aurait été manquant, comme le soulignent d'autres réponses. La syntaxe correcte de MySQL aurait été:
Publier ici pour plus de clarté pour les utilisateurs de MySQL.
la source
En PostgresQL c'est:
la source
Bien que je ne sache pas quel SGBDR vous utilisez, vous devez probablement donner la spécification de la colonne entière, pas seulement dire que vous voulez maintenant qu'il soit annulable. Par exemple, si c'est actuellement
INT NOT NULL
, vous devez émettreALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.la source
Null
|NOT NULL
n'est pas spécifié, la colonne sera nullable.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:
la source
Pour HSQLDB:
la source
Cela fonctionnera pour vous.
Si vous souhaitez modifier une colonne non nulle pour autoriser null, pas besoin d'inclure une clause non null. Parce que les colonnes par défaut ne sont pas nulles.
la source
Cela dépend du moteur SQL que vous utilisez, dans Sybase, votre commande fonctionne correctement:
la source
Oracle
la source
SQL_SCRIPT
?