Obwohl ich nicht weiß, welches RDBMS Sie verwenden, müssen Sie wahrscheinlich die gesamte Spaltenspezifikation angeben und nicht nur sagen, dass Sie jetzt möchten, dass es nullwertfähig ist. Zum Beispiel, wenn es aktuell ist INT NOT NULL, sollten Sie ausstellen ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.
Dies ist eine korrekte und beschreibende Antwort. Klären Sie also nur, ob Null| NOT NULLWird nicht angegeben, ist die Spalte nullwertfähig.
Hamid Heydarian
4
Wie andere beobachtet haben, variiert die genaue Syntax für den Befehl in verschiedenen DBMS-Varianten. Die von Ihnen verwendete Syntax funktioniert in 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;
Dies wird für Sie funktionieren.
Wenn Sie eine Nicht-Null-Spalte ändern möchten, um Null zuzulassen, müssen Sie keine Nicht-Null-Klausel einfügen. Weil Standardspalten nicht null werden.
Antworten:
Angenommen
SQL Server
(basierend auf Ihren vorherigen Fragen):Ersetzen Sie
INT
durch Ihren tatsächlichen Datentyp.quelle
für Benutzer von Oracle Database 10g:
Sie erhalten "ORA-01735: ungültige ALTER TABLE-Option", wenn Sie es anders versuchen
quelle
Wenn dies MySQL-Syntax wäre, hätte der Typ gefehlt, wie einige andere Antworten zeigen. Die korrekte MySQL-Syntax wäre gewesen:
Hier zur Klarheit für MySQL-Benutzer posten.
quelle
In PostgresQL ist es:
quelle
Obwohl ich nicht weiß, welches RDBMS Sie verwenden, müssen Sie wahrscheinlich die gesamte Spaltenspezifikation angeben und nicht nur sagen, dass Sie jetzt möchten, dass es nullwertfähig ist. Zum Beispiel, wenn es aktuell ist
INT NOT NULL
, sollten Sie ausstellenALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.quelle
Null
|NOT NULL
Wird nicht angegeben, ist die Spalte nullwertfähig.Wie andere beobachtet haben, variiert die genaue Syntax für den Befehl in verschiedenen DBMS-Varianten. Die von Ihnen verwendete Syntax funktioniert in Oracle:
quelle
Für HSQLDB:
quelle
Dies wird für Sie funktionieren.
Wenn Sie eine Nicht-Null-Spalte ändern möchten, um Null zuzulassen, müssen Sie keine Nicht-Null-Klausel einfügen. Weil Standardspalten nicht null werden.
quelle
Dies hängt davon ab, welche SQL Engine Sie verwenden. In Sybase funktioniert Ihr Befehl einwandfrei:
quelle
Orakel
quelle
SQL_SCRIPT
?