Bir sütunu boş bırakılacak şekilde değiştirme


318

Null olabilecek bir tablo sütununu değiştirmek istiyorum. Ben kullandım:

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

Bu, konumunda bir hata verir Modify. Doğru sözdizimi nedir?


7
Lütfen gelecekte hata mesajını gönderin
'13

1
Bu herkes için ücretsiz bir genel haline gelmiş gibi görünüyor SQL Server etiketi kaldırdım.
Martin Smith

Yanıtlar:


514

Varsayım SQL Server(önceki sorularınıza dayanarak):

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

INTGerçek veri tipinizle değiştirin .


43

Oracle Database 10g kullanıcıları için:

alter table mytable modify(mycolumn null);

Aksi halde denediğinizde "ORA-01735: geçersiz ALTER TABLE seçeneği"

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

Harika, veri türünü belirtmek zorunda değilsiniz, yalnızca "boş" hale getirmek için.
Gabe Halsmer

41

Bu MySQL sözdizimi olsaydı, diğer bazı yanıtların işaret ettiği gibi, tür eksik olurdu. Doğru MySQL sözdizimi şöyle olurdu:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

MySQL kullanıcılarına açıklık getirmek için buraya gönderiyoruz.


29

PostgresQL'de:

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;

5

Hangi RDBMS'yi kullandığınızı bilmesem de, büyük olasılıkla tüm sütun belirtimini vermeniz gerekiyor, sadece şimdi nullable olmasını istediğinizi söylemeyin. Örneğin, şu anda yayınlı INT NOT NULLolmanız gerekir ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.


Bu doğru ve açıklayıcı bir cevaptır, bu yüzden sadece Null| NOT NULLbelirtilmezse, sütun boş bırakılacaktır.
Hamid Heydarian

4

Diğerlerinin gözlemlediği gibi, komutun tam sözdizimi, DBMS'nin farklı lezzetleri arasında değişir. Kullandığınız sözdizimi Oracle'da çalışır:

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>

0

HSQLDB için:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

0
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;

Bu senin için işe yarayacak.

Null değerine izin vermek için null olmayan bir sütunu değiştirmek isterseniz, null değil yan tümcesini eklemenize gerek yoktur. Çünkü varsayılan sütunlar boş olmaz.

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;

0

Bu, kullandığınız SQL Engine'e bağlıdır, Sybase'de komutunuz iyi çalışır:

ALTER TABLE Merchant_Pending_Functions 
Modify NumberOfLocations NULL;

0

torpil

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


Bu cevap @ IgorS'un cevabı ile ilgili yeni bir şey getiriyor mu? Ve ne anlama geliyor SQL_SCRIPT?
jpeg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.