Ma table existante:
+-----------------+---------------+------+-----+---------+-------------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+---------------+------+-----+---------+-------------------+ | creation_date | timestamp | YES | | NULL |
Je voulais modifier la table comme ceci:
ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Mais j’ai cette erreur:
ERROR 1138 (22004) à la ligne 7: utilisation incorrecte de la valeur NULL
Le problème ressemble à changer le Nullable qui était OUI à NOT NULL. Dois-je déposer la colonne et l’append ensuite?
Il semble qu’il y ait peu de lignes avec une valeur NULL. Mettez à jour toutes les valeurs NULL à une date par défaut dans cette colonne, puis essayez de faire une modification.
Essaye ça
--update null value rows UPDATE enterprise SET creation_date = CURRENT_TIMESTAMP WHERE creation_date IS NULL; ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Vous ne pouvez pas utiliser cette requête tant que vous n’avez pas de valeurs NULL dans la colonne creation_date.
Mettez à jour votre colonne creation_date avec une date par défaut, puis modifiez la table.
Comme ça
UPDATE enterprise SET creation_date = CURRENT_TIMESTAMP WHERE creation_date IS NULL; ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;