Desidero modificare una colonna della tabella come annullabile. Ho usato:Modifica di una colonna come annullabile
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Questo dà un errore a Modify
. Qual è la sintassi corretta?
Desidero modificare una colonna della tabella come annullabile. Ho usato:Modifica di una colonna come annullabile
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Questo dà un errore a Modify
. Qual è la sintassi corretta?
Supponendo SQL Server
(in base alle domande precedenti):
ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
Sostituire INT
con il tipo di dati effettivo.
Anche se non so quale RDBMS si sta utilizzando, è probabilmente necessario fornire l'intera specifica della colonna, non solo dire che ora si desidera che sia annullabile. Ad esempio, se è attualmente INT NOT NULL
, è necessario emettere ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.
Questa è una risposta corretta e descrittiva, quindi basta chiarire se 'Null' | 'NOT NULL' non è specificato, la colonna sarà annullabile. –
Come altri hanno osservato, la sintassi precisa per il comando varia tra diversi tipi di DBMS. La sintassi si utilizza Works 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>
per Oracle utenti Database 10g:
alter table mytable modify(mycolumn null);
Si ottiene "ORA-01.735: opzione non valida ALTER TABLE" quando si tenta altrimenti
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
Fresco, non è necessario specificare il tipo di dati, solo "null" per renderlo nullable. –
Se si trattasse della sintassi MySQL, il tipo sarebbe stato mancante, come indicato da altre risposte. sintassi MySQL corretta sarebbe stata:
ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
Distacco qui per chiarezza per gli utenti di MySQL.
in PostgreSQL è:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
si prega di inviare il messaggio di errore in futuro –
Ho rimosso il tag SQL Server come sembra che questo è diventato un generale gratuito per tutti. –