Voglio modificare una colonna della tabella per renderla nulla. Ho usato:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Questo dà un errore a Modify
. Qual è la sintassi corretta?
Voglio modificare una colonna della tabella per renderla nulla. Ho usato:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Questo dà un errore a Modify
. Qual è la sintassi corretta?
Risposte:
per utenti Oracle Database 10g:
alter table mytable modify(mycolumn null);
Ottieni "ORA-01735: opzione ALTER TABLE non valida" quando provi diversamente
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
In PostgresQL è:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
Anche se non so quale RDBMS stai usando, probabilmente dovrai fornire la specifica dell'intera colonna, non solo dire che ora vuoi che sia nullable. Ad esempio, se è attualmente INT NOT NULL
, è necessario emettere ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.
Null
| NOT NULL
non è specificato, la colonna sarà nullable.
Come altri hanno osservato, la sintassi precisa per il comando varia a seconda dei diversi tipi di DBMS. La sintassi che usi funziona in 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>
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;
Questo funzionerà per te.
Se si desidera modificare una colonna non nulla per consentire null, non è necessario includere clausole non null. Perché le colonne predefinite non sono nulle.
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;
Questo dipende da quale motore SQL stai usando, in Sybase il tuo comando funziona bene:
ALTER TABLE Merchant_Pending_Functions
Modify NumberOfLocations NULL;
Oracolo
ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);
SQL_SCRIPT
?