Mysql
 sql >> Database >  >> RDS >> Mysql

È possibile definire una colonna timestamp che non sia nulla e non abbia un comportamento predefinito o speciale durante l'aggiornamento?

Le colonne timestamp sono un caso speciale. Vedi qui :per impostazione predefinita, le colonne TIMESTAMP NON sono NULL, non possono contenere valori NULL e l'assegnazione di NULL assegna il timestamp corrente.

Per informazioni più dettagliate, leggi Valori predefiniti del tipo di dati .

In particolare, questa situazione si applica quando non è in esecuzione in modalità rigorosa. Se si esegue in modalità rigorosa, l'inserimento di un NULL genererà un errore.

Questo dovrebbe risolverlo:

ALTER TABLE tableName ALTER COLUMN columnName DROP DEFAULT;

Se ciò non funziona, in questo modo si dovrebbe lasciare l'impostazione predefinita (facilmente sovrascritta) ma rimuovere ON UPDATE:

ALTER TABLE tableName CHANGE columnName columnName NOT NULL DEFAULT CURRENT_TIMESTAMP;

Nota il nome della colonna ripetuto.