mysql - Insert current date on insert -
i have table following structure:
+----+-------------+----------------+------------+------------+ | id | column | column | inserted | edited | +----+-------------+----------------+------------+------------+ | 1 | ... | ... | 2014-08-15 | 2016-03-04 | | 2 | ... | ... | 2015-09-16 | 2016-10-07 | | 3 | ... | ... | 2016-10-17 | 2016-11-16 | +----+-------------+----------------+------------+------------+
when new entry inserted, current date should added column inserted
. should never changed.
when entry edited, current date should added column edited
, should update every time entry edited.
my approach define datatype date
in both cases , change standard value curdate()
. instead, inserts curdate()
string.
update example query:
create table `test`.`testtab` ( `id` int not null auto_increment, `some column` varchar(100) null, `another column` varchar(100) null, `inserted` varchar(100) null default 'curdate()', `edited` varchar(100) null default 'curdate()', primary key (`id`) ) engine = innodb;
though, i'm not sure data types.
based on needs work you:
create table `test`.`testtab` ( `id` int not null auto_increment, `some column` varchar(100) null, `another column` varchar(100) null, `inserted` datetime default current_timestamp, `edited` datetime on update current_timestamp, primary key (`id`) ) engine = innodb;
then while processing extract date part:
date_format(datetime, '%y-%m-%d')
you can use trigger workaround set datetime field now() new inserts:
create trigger `triggername` before insert on `tablename` each row set new.datetimefield = now()
it should work updates too
Comments
Post a Comment