it-roy-ru.com

Как можно удалить ненулевое ограничение?

Допустим, есть таблица, созданная следующим образом:

create table testTable ( colA int not null )

Как бы вы отбросили ненулевое ограничение? Я ищу что-то вроде

ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;

что бы это выглядело, если бы я использовал PostgreSQL. К моему изумлению, насколько мне удалось найти, документы MySQL, Google и да, даже Stackoverflow (несмотря на десятки или сотни вопросов, связанных с NULL), похоже, не ведут к единому простому SQL-выражению который сделает работу.

53
Tomislav Nakic-Alfirevic

Я бы попробовал что то подобное

ALTER TABLE testTable MODIFY COLUMN colA int;
73
michael.zischka

В MySQL обнуляемость является частью типа данных, а не ограничением. Так:

ALTER TABLE testTable MODIFY COLUMN colA int null; 
9
Seva Alekseyev

Синтаксис был близок его на самом деле:

ALTER TABLE testTable CHANGE colA colA int null;
3
Noah Ternullo

Пытаться

ALTER TABLE testTable MODIFY COLUMN columnA int;
1
Pratik Kar
ALTER TABLE test.tbl_employee 
CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL;
0
Chaitanya

Когда вы изменяете ограничение таблицы или тип данных в Mysql Workbench, тогда он показывает код, который он собирается выполнить для выполнения запроса . И это запрос, который я получил из этого окна.

ALTER TABLE `table_name`.`column_name`  CHANGE COLUMN `column_name` `colunm_name`datatype NULL ;

Но выгода здесь в том, что вы не можете иметь первичный ключ как ноль, вместо этого вы должны установить его уникальным.

0
Tushar Zagade

Это работает для меня

ALTER TABLE table_name
MODIFY COLUMN column_name VARCHAR(25) UNIQUE;
0
B-shan