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.