अपना प्रश्न पूरा करने के लिए और इस प्रश्न को देखने वाले अन्य लोगों के लिए, यहां जवाब है। नोट यह MySQL 5.x के लिए लिखा गया था।
DROP TABLE IF EXISTS `test1`;
CREATE TABLE `test1` (
`id` INT NULL AUTO_INCREMENT ,
`name` varchar(50) NOT NULL ,
`created` DATETIME ,
`updated` DATETIME ,
PRIMARY KEY (`id`),
INDEX (`name`)
);
DELIMITER $$
DROP TRIGGER IF EXISTS `test1_created`$$
CREATE TRIGGER `test1_created` BEFORE INSERT ON `test1`
FOR EACH ROW BEGIN
SET NEW.`created` = UTC_TIMESTAMP();
SET NEW.`updated` = UTC_TIMESTAMP();
END;
$$
DROP TRIGGER IF EXISTS `test1_updated`$$
CREATE TRIGGER `test1_updated` BEFORE UPDATE ON `test1`
FOR EACH ROW BEGIN
SET NEW.`updated` = UTC_TIMESTAMP();
END;
$$
DELIMITER ;
नोट
आप updated
स्तंभ स्वचालित रूप से मूल्य इस प्रकार से पहले अद्यतन ट्रिगर की जरूरत नहीं अद्यतन कर दिया होगा जिसके लिए TIMESTAMP इस्तेमाल कर सकते हैं, हालांकि TIMESTAMP 1970 से एक श्रृंखला है 2038 के लिए जो तेजी से आ रहा है और मुझे लगता है कि मेरे अनुप्रयोग हमेशा के लिए जीना पसंद करेंगे :)। हालांकि TIMESTAMP केवल 4bytes है जबकि DATETIME 8bytes है।
TIMESTAMP range '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC
DATETIME range '1000-01-01 00:00:00' to '9999-12-31 23:59:59'
pls अपने प्रश्न को elobrate, मुझे कुछ भी स्पष्ट नहीं मिला है। – nepsdotin
mdgrech दो फ़ील्ड जोड़ना चाहता है जिसमें टेबल पंक्ति बनाई गई थी, और जब इसे अद्यतन किया गया था, का टाइमस्टैम्प होता है। – kiamlaluno
+1 मुझे बहुत स्पष्ट लगता है –