web-dev-qa-db-fra.com

Comment une contrainte non nulle peut-elle être supprimée?

Disons qu'il y a une table créée comme suit:

create table testTable ( colA int not null )

Comment voulez-vous supprimer la contrainte non nulle? Je cherche quelque chose du genre

ALTER TABLE testTable ALTER COLUMN colA DROP NOT NULL;

c'est à quoi ça ressemblerait si j'utilisais PostgreSQL. À mon grand étonnement, autant que j'ai pu trouver, les documents MySQL, Google et oui, même Stackoverflow (malgré des dizaines ou des centaines de questions liées à NULL) ne semblent pas conduire à une seule instruction SQL simple. qui fera le travail.

Je voudrais essayer quelque chose comme ça

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

Dans MySQL, la nullabilité fait partie du type de données, pas une contrainte. Alors:

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

La syntaxe était proche de sa réalité:

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

Essayer

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

Lorsque vous modifiez la contrainte de table ou le type de données dans Mysql Workbench, il affiche le code qu'il va exécuter pour exécuter la demande . Et voici la requête que j'ai obtenue de cette zone.

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

Mais le problème ici est que vous ne pouvez pas avoir la clé primaire comme nulle, vous devez la définir comme unique.

0
Tushar Zagade

Ça marche pour moi

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