Я хочу изменить столбец таблицы на значение NULL. Я использовал:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Это дает ошибку при Modify
. Каков правильный синтаксис?
Я хочу изменить столбец таблицы на значение NULL. Я использовал:
ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL
Это дает ошибку при Modify
. Каков правильный синтаксис?
Предполагая SQL Server
(исходя из ваших предыдущих вопросов):
ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL
Замените INT
на ваш фактический тип данных.
для пользователей Oracle Database 10g:
alter table mytable modify(mycolumn null);
Вы получаете "ORA-01735: недопустимый параметр ALTER TABLE" при попытке иначе
ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
Если это был синтаксис MySQL, тип отсутствовал бы, как указывают некоторые другие ответы. Правильный синтаксис MySQL был бы следующим:
ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL
Проводка здесь для ясности для пользователей MySQL.
В PostgresQL это:
ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
Хотя я не знаю, какие RDBMS вы используете, вам, вероятно, нужно указать всю спецификацию столбца, а не просто сказать, что теперь вы хотите, чтобы она была нулевой. Например, если в настоящее время INT NOT NULL
, вы должны указать ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT
.
Как отмечали другие, точный синтаксис команды зависит от разных вариантов СУБД. Синтаксис, который вы используете, работает в 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>
Для HSQLDB:
ALTER TABLE tableName ALTER COLUMN columnName SET NULL;
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN 'NumberOfLocations' INT null;
Это будет работать для вас.
Если вы хотите изменить ненулевой столбец, чтобы разрешить нулевой, нет необходимости включать не нулевое предложение. Поскольку столбцы по умолчанию становятся не нулевыми.
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN 'NumberOfLocations' INT;