Изменение столбца, чтобы быть обнуляемым - PullRequest
277 голосов
/ 24 августа 2010

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

ALTER TABLE Merchant_Pending_Functions Modify NumberOfLocations NULL

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

Ответы [ 9 ]

433 голосов
/ 24 августа 2010

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

ALTER TABLE Merchant_Pending_Functions ALTER COLUMN NumberOfLocations INT NULL

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

42 голосов
/ 21 мая 2013

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

alter table mytable modify(mycolumn null);

Вы получаете «ORA-01735: неверная опция ALTER TABLE», если вы попытаетесь иначе

ALTER TABLE mytable ALTER COLUMN mycolumn DROP NOT NULL;
37 голосов
/ 04 сентября 2013

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

ALTER TABLE Merchant_Pending_Functions MODIFY NumberOfLocations INT NULL

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

22 голосов
/ 06 марта 2016

В PostgresQL это:

ALTER TABLE tableName ALTER COLUMN columnName DROP NOT NULL;
5 голосов
/ 24 августа 2010

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

4 голосов
/ 24 августа 2010

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

в Oracle

ALTER TABLE Merchant_Pending_Functions MODIFY(SQL_SCRIPT NOT NULL);

0 голосов
/ 13 апреля 2019
ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT null;

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

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

ALTER TABLE Merchant_Pending_Functions MODIFY COLUMN `NumberOfLocations` INT;
0 голосов
/ 08 октября 2018

Для HSQLDB:

ALTER TABLE tableName ALTER COLUMN columnName SET NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...