Изменение столбца с нулевым значением

Я хочу изменить столбец таблицы на значение NULL. Я использовал:

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

Это дает ошибку при Modify. Каков правильный синтаксис?

Ответ 1

Предполагая SQL Server (исходя из ваших предыдущих вопросов):

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

Замените INT на ваш фактический тип данных.

Ответ 2

для пользователей Oracle Database 10g:

alter table mytable modify(mycolumn null);

Вы получаете "ORA-01735: недопустимый параметр ALTER TABLE" при попытке иначе

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;

Ответ 3

Если это был синтаксис MySQL, тип отсутствовал бы, как указывают некоторые другие ответы. Правильный синтаксис MySQL был бы следующим:

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

Проводка здесь для ясности для пользователей MySQL.

Ответ 4

В PostgresQL это:

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;

Ответ 5

Хотя я не знаю, какие RDBMS вы используете, вам, вероятно, нужно указать всю спецификацию столбца, а не просто сказать, что теперь вы хотите, чтобы она была нулевой. Например, если в настоящее время INT NOT NULL, вы должны указать ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations INT.

Ответ 6

Как отмечали другие, точный синтаксис команды зависит от разных вариантов СУБД. Синтаксис, который вы используете, работает в 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>

Ответ 7

Для HSQLDB:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;

Ответ 8

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN 'NumberOfLocations' INT null;

Это будет работать для вас.

Если вы хотите изменить ненулевой столбец, чтобы разрешить нулевой, нет необходимости включать не нулевое предложение. Поскольку столбцы по умолчанию становятся не нулевыми.

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN 'NumberOfLocations' INT;