Я хочу изменить столбец таблицы, чтобы быть обнуляемым. Я использовал:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Это дает ошибку при Modify. Какой правильный синтаксис?
Я хочу изменить столбец таблицы, чтобы быть обнуляемым. Я использовал:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Это дает ошибку при Modify. Какой правильный синтаксис?
Ответы:
для пользователей Oracle Database 10g:
alter table mytable modify(mycolumn null);
Вы получаете «ORA-01735: неверная опция ALTER TABLE», если вы попытаетесь иначе
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
Хотя я не знаю, какую СУБД вы используете, вам, вероятно, нужно указать всю спецификацию столбца, а не просто сказать, что вы хотите, чтобы она была обнуляемой. Например, если это в настоящее время INT NOT NULL, вы должны выдать ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.
Null| NOT NULLне указан, столбец будет обнуляться.
Как уже отмечалось, точный синтаксис команды различается в зависимости от типа СУБД. Используемый вами синтаксис работает в 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;
Это будет работать для вас.
Если вы хотите изменить ненулевой столбец, чтобы разрешить нулевой, нет необходимости включать не нулевое предложение. Поскольку столбцы по умолчанию становятся не нулевыми.
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;
Это зависит от того, какой SQL Engine вы используете, в Sybase ваша команда работает нормально:
ALTER TABLE Merchant_Pending_Functions
Modify NumberOfLocations NULL;
оракул
ALTER TABLE Merchant_Pending_Functions MODIFY([column] NOT NULL);