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;
Dans MySQL, la nullabilité fait partie du type de données, pas une contrainte. Alors:
ALTER TABLE testTable MODIFY COLUMN colA int null;
La syntaxe était proche de sa réalité:
ALTER TABLE testTable CHANGE colA colA int null;
Essayer
ALTER TABLE testTable MODIFY COLUMN columnA int;
ALTER TABLE test.tbl_employee
CHANGE COLUMN `DepartmentId` `DepartmentId` INT(11) NULL;
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.
Ça marche pour moi
ALTER TABLE table_name
MODIFY COLUMN column_name VARCHAR(25) UNIQUE;