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?
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?
Yanıtlar:
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;
PostgresQL'de:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
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 NULL
olmanız gerekir ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.
Null
| NOT NULL
belirtilmezse, sütun boş bırakılacaktır.
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>
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;
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;
torpil
ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);