2014-04-09 6 views
37

Meine vorhandene Tabelle:MySQL Alte Tabelle verursacht Fehler: Ungültige Verwendung von NULL-Wert

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; 

Aber ich habe diesen Fehler:

+-----------------+---------------+------+-----+---------+-------------------+ 
| Field   | Type   | Null | Key | Default | Extra    | 
+-----------------+---------------+------+-----+---------+-------------------+ 
| creation_date | timestamp  | YES |  | NULL      | 

I Tabelle wie folgt ändern wollte FEHLER 1138 (22004) in Zeile 7: Ungültige Verwendung von NULL-Wert

Das Problem sieht aus wie Ändern der Nullable whic h war JA bis NOT NULL. Muss ich die Spalte löschen und später hinzufügen?

Antwort

59

Es ist wie es aussieht, ist in dieser Spalte sind nur wenige Zeilen mit NULL value.Update all NULL-Wert zu einem Standarddatum und dann versuchen, ein alten zu tun.

dieses

--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; 
+0

Danke dafür, @rs. – bdalina

1

You can't use this query until you have null values in creation_date column.

Aktualisieren Sie Ihre creation_date Spalte mit einigen Standarddatum, ändern Sie dann die Tabelle.

Gefallen Sie diesen

UPDATE enterprise SET creation_date = CURRENT_TIMESTAMP WHERE creation_date IS NULL; 

ALTER TABLE enterprise MODIFY creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; 
+1

Späte Kommentar Versuchen aber ich vermute, dass sein sollten entweder Sie nicht so lange verwenden können, wie Sie NULL-Werte haben oder bis Sie keine NULL-Werte bekommen haben. Sonst gäbe es kein Problem. – thisisboris

Verwandte Themen