Tôi muốn tạo bảng có cả cột cho "được tạo" và cột khác cho "được cập nhật". Cột "được tạo" sẽ được đặt ở vị trí chèn và không bao giờ thay đổi. Cột "cập nhật" sẽ thay đổi mỗi khi một hàng được cập nhật. Tôi không muốn gây rối với một trong hai cột này trong các câu lệnh INSERT hoặc UPDATE tiếp theo. Vậy câu lệnh CREATE TABLE của tôi trông như thế nào nếu tôi bắt đầu với một cái gì đó như thế này?Hai cột dấu thời gian của MySQL trong một bảng
CREATE TABLE IF NOT EXISTS `mydb`.`mytable` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`updated` TIMESTAMP,
`created` TIMESTAMP,
`deleted` TINYINT DEFAULT 0,
`notes` TEXT DEFAULT '',
`description` VARCHAR(100)
) TYPE=innodb;
Tôi dường như gặp sự cố khi tạo bảng bằng hai cột TIMESTAMP. Tôi không quan tâm nếu các cột là TIMESTAMP hoặc DATETIME hoặc bất cứ điều gì, tôi chỉ muốn chúng được điền bởi MySQL mà không có hướng dẫn rõ ràng từ các câu lệnh chèn hoặc cập nhật.
Tôi muốn để có thể làm chèn như thế này:
INSERT INTO `mydb`.`mytable` (notes,description) VALUES ('some note','some description');
và cập nhật như thế này:
UPDATE `mydb`.`mytable` SET notes=CONCAT(notes,'some more notes') WHERE id=1;
cả mà không cần phải thiết lập một cách rõ ràng cột "tạo ra" hoặc thiết lập (hoặc đặt lại) cột "được cập nhật" trong câu lệnh chèn hoặc cập nhật.
Bạn cần một ON UPDATE kích hoạt để cập nhật " cập nhật "cột mỗi lần cập nhật xảy ra. Tôi muốn trả lời với một ví dụ hoàn chỉnh, nhưng tôi không biết làm thế nào được thực hiện trong MySQL, vì tôi chỉ sử dụng PostgreSQL những ngày này. Nhưng tôi chắc rằng hướng dẫn sử dụng MySQL sẽ cung cấp cho bạn cú pháp đầy đủ. – Flimzy
bản sao có thể có của [Một bảng Mysql với nhiều cột TIMESTAMP] (http://stackoverflow.com/questions/4851672/one-mysql-table-with-multiple-timestamp-columns) –