Berichten in blogopmaak
Ger van Steenderen op 30/06/2012 20:22:14:
Het was nog mooier geweest als mysql accepteerde dat je NOW() in de default value kon zetten. Maar helaas!
Je kunt dit doen:
Code (php)
1
2
2
ALTER TABLE mytable
ADD COLUMN dateofcreation TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ADD COLUMN dateofcreation TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Als je daarna een INSERT query uitvoert hoef je het veld 'dateofcreation' niet expliciet op te geven.
Maar wel bij een UPDATE query!
Wat ik wilde aangeven is dat je in MySQL geen functies en expressies kunt gebruiken in de DEFAULT waarde van een kolom. Heel veel mensen (waaronder ik) vinden dat een tekortkoming in MySQL, maar je kunt daar dus omheen werken dmv triggers.
Wat ik wilde aangeven is dat je in MySQL geen functies en expressies kunt gebruiken in de DEFAULT waarde van een kolom. Heel veel mensen (waaronder ik) vinden dat een tekortkoming in MySQL, maar je kunt daar dus omheen werken dmv triggers.
Ger van Steenderen op 01/07/2012 12:26:54:
Maar wel bij een UPDATE query!
Nee, dat is in dit geval niet waar. Als je bij een timestamp column the DEFAULT CURRENT_TIMESTAMP meegeeft, dan wordt die bij een insert geupdate, maar NIET bij een update. Voor een update zou je dan ON UPDATE CURRENT_TIMESTAMP moeten meegeven.
Geef je niets mee dan gebeurt het beide automatisch, maar geef je alleen een van de twee mee dan gebeurt die, niet de ander.
Daar heb je gelijk in, maar als je een invoerdatum en een gewijzigddatum wilt bijhouden kun je dat niet met een timestamp op beide kolommen.
Ik blijf het jammer vinden dat de S in SQL niet voor standaard staat, als dat soort dingen een beetje meer gestandariseerd zouden zijn, zou dat mij veel tijd besparen ;-)
Ik blijf het jammer vinden dat de S in SQL niet voor standaard staat, als dat soort dingen een beetje meer gestandariseerd zouden zijn, zou dat mij veel tijd besparen ;-)



