In MySQL, I\'m sick of adding the columns dt_created
and dt_modified
(which are date time stamps for creation and last modified respectively) to al
If you're using phpmyadmin you can do this by :
could be set as default an on update of rows
ALTER TABLE `tablename` CHANGE `dt` `dt` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE `tablename` CHANGE `dt` `dt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
should be the correct code.
Well, you can't have both:
mysql doc:
It is not possible to have the current timestamp be the default value for one column and the auto-update value for another column.
Sad, isn't it?
You could however use null instead of now() following this tip
You can use DEFAULT constraints to set the timestamp:
ALTER TABLE
MODIFY dt_created datetime DEFAULT CURRENT_TIMESTAMP
ALTER TABLE
MODIFY dt_modified datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Then you wouldn't have to specify NOW()
in your INSERT/UPDATE statements.
Reference: TIMESTAMP properties
In phpmyadmin you can set
OR use this query
ALTER TABLE `tablename`
CHANGE `dt_created` `dt_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP