505 Stimmen

Ändern einer Spalte so, dass sie nullbar ist

Ich möchte eine Tabellenspalte so ändern, dass sie nullbar ist. Ich habe verwendet:

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

Dies führt zu einem Fehler bei Modify . Was ist die richtige Syntax?

4voto

APC Punkte 140727

Wie bereits von anderen bemerkt, variiert die genaue Syntax des Befehls zwischen den verschiedenen DBMS-Varianten. Die von Ihnen verwendete Syntax funktioniert 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>

2voto

Oracle

ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);

2voto

ZORRO_BLANCO Punkte 779

Dies hängt davon ab, welche SQL-Engine Sie verwenden. In Sybase funktioniert Ihr Befehl einwandfrei:

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

1voto

Libor B. Punkte 469

Für HSQLDB:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

1voto

chamzz.dot Punkte 500
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;

Das wird für Sie funktionieren.

Wenn Sie eine Nicht-Null-Spalte so ändern wollen, dass sie Null zulässt, müssen Sie keine Nicht-Null-Klausel einfügen. Denn Standardspalten erhalten not null.

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X