Saya ingin mengubah kolom tabel menjadi nullable. Saya telah menggunakan:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Ini memberikan kesalahan pada Modify. Apa sintaks yang benar?
Saya ingin mengubah kolom tabel menjadi nullable. Saya telah menggunakan:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Ini memberikan kesalahan pada Modify. Apa sintaks yang benar?
Jawaban:
untuk pengguna Oracle Database 10g:
alter table mytable modify(mycolumn null);
Anda mendapatkan "ORA-01735: opsi ALTER TABLE tidak valid" ketika Anda mencoba sebaliknya
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
Dalam PostgresQL itu adalah:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
Meskipun saya tidak tahu apa RDBMS yang Anda gunakan, Anda mungkin perlu memberikan spesifikasi kolom secara keseluruhan, tidak hanya mengatakan bahwa Anda sekarang ingin itu dapat dibatalkan. Misalnya, jika saat ini INT NOT NULL, Anda harus menerbitkan ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.
Null| NOT NULLtidak ditentukan, kolom akan dibatalkan.
Seperti yang orang lain telah amati, sintaksis yang tepat untuk perintah bervariasi di berbagai rasa DBMS. Sintaks yang Anda gunakan berfungsi di 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>
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;
Ini akan bekerja untuk Anda.
Jika Anda ingin mengubah kolom bukan nol untuk mengizinkan nol, tidak perlu menyertakan bukan klausa nol. Karena kolom default bukan nol.
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;
Ini tergantung pada apa SQL Engine yang Anda gunakan, di Sybase perintah Anda berfungsi dengan baik:
ALTER TABLE Merchant_Pending_Functions
Modify NumberOfLocations NULL;
Peramal
ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);