php - Problème d'horodatage après la version Mysql 5.7
仅有的幸福
仅有的幸福 2017-05-16 13:09:07
0
3
680

Environnement :

>sélectionner la version();
> 5.7.16

Question :

Il y a deux champs dans une table, created_at et updated_at. Les deux types de champ sont timestamp. La valeur par défaut est CURRENT_TIMESTAMP et la valeur par défaut de updated_at est définie sur 0000-00-00. 00:00:00, le problème survient à ce moment-là. Exécutez l'instruction pour créer la table ou signaler une erreur. Voici le code d'erreur :

Erreur de syntaxe ou violation d'accès : 1067 Valeur par défaut non valide pour 'updated_at'

Si vous modifiez la valeur par défaut de updated_at en CURRENT_TIMESTAMP, l'exécution s'effectuera sans problème, mais il y aura un autre problème. Les versions inférieures à Mysql5.7 ne prennent pas en charge une seule table. Existe-t-il deux champs timestamp avec une valeur par défaut de CURRENT_TIMESTAMP ?

Alors, s'il vous plaît, demandez à tous les maîtres, comment résoudre ce problème de la valeur par défaut de timestamp ? Compatible avec les versions hautes et basses de Mysql.

&^ - &^

仅有的幸福
仅有的幸福

répondre à tous(3)
小葫芦

5.7 nécessite que la valeur par défaut soit comprise dans une plage qui semble aller de 1970 à 20 ans. Vous pouvez définir une valeur de 2000-01-01 00:00:00 et cela devrait être OK

.
阿神

Les systèmes 32 bits semblent être en 2038. Utilisez un système 64 bits. Essayez également de sauvegarder les données avec des horodatages.

滿天的星座

En regardant ce problème du point de vue des exigences du champ update_at, nous comprenons littéralement que ce champ doit être utilisé pour tabler l'heure de mise à jour de l'enregistrement.
Si l'heure de mise à jour a une valeur par défaut, mais que la valeur par défaut n'est pas l'heure actuelle de la base de données insérée lors de la mise à jour/ajout d'enregistrements (le sujet utilise 0000-00-00 00:00:00), alors toute valeur autre que la base de données actuelle l'heure sera utilisée. La signification de ce champ n'existe pas (données redondantes/erronées).
Il n'est pas nécessaire de sauvegarder les données correspondant aux erreurs dans la base de données.
En résumé, le questionneur aimerait voir s'il est possible de ne pas donner de valeur par défaut au champ update_at ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal