Anand
Anand

Reputation: 1021

Alter table add new field "ON UPDATE CURRENT_TIMESTAMP"

This is my table:

CREATE TABLE `megssage`(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(256) DEFAULT NULL,
  `time_create` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

I would like to add new column as time_updated with default value "ON UPDATE CURRENT_TIMESTAMP".

I tried this:

ALTER TABLE `megssage` 
   CHANGE `time_updated` `time_updated` TIMESTAMP NULL DEFAULT  ON UPDATE CURRENT_TIMESTAMP

But I am getting an error. Can someone help me?

Upvotes: 14

Views: 35380

Answers (4)

Black_ Kaptaan
Black_ Kaptaan

Reputation: 1

ALTER TABLE `megssage` 
ADD time_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP;

Upvotes: 0

Joseph Samuel
Joseph Samuel

Reputation: 261

If you want to add a field to the megssage table:

ALTER TABLE `megssage` ADD time_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

Upvotes: 25

SimSimY
SimSimY

Reputation: 3686

Try

ALTER TABLE `megssage` 
    CHANGE COLUMN `time_updated` `time_updated` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ;

Upvotes: 11

CP Soni
CP Soni

Reputation: 423

You can use :

ALTER TABLE `megssage` ADD `TIME_UPDATED` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL AFTER `time_create` 

Upvotes: 2

Related Questions