Me gustaría crear una tabla que tenga una columna para "creado" y otra para "actualizado". La columna "creada" se configurará en insertar y nunca cambiará. La columna "actualizada" cambiará cada vez que se actualice una fila. No quiero meterme con ninguna de estas columnas en las siguientes instrucciones INSERT o UPDATE. Entonces, ¿cómo debería ser mi declaración CREATE TABLE si empiezo con algo como esto?Dos columnas de indicación de fecha y hora MySQL en una tabla
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;
Parece que tengo problemas para crear una tabla con dos columnas TIMESTAMP. No me importa si las columnas son TIMESTAMP o DATETIME o lo que sea, solo quiero que sean rellenas por MySQL sin instrucciones explícitas de las instrucciones de inserción o actualización.
Me gustaría ser capaz de hacer inserciones de la siguiente manera:
INSERT INTO `mydb`.`mytable` (notes,description) VALUES ('some note','some description');
y actualizaciones como esta:
UPDATE `mydb`.`mytable` SET notes=CONCAT(notes,'some more notes') WHERE id=1;
tanto sin tener que establecer explícitamente la columna "creado" o conjunto (o restablecer) la columna "actualizada" en la instrucción de inserción o actualización.
Es necesario un desencadenador UPDATE ON para actualizar el " "columna actualizada" cada vez que ocurre una actualización. Yo respondería con un ejemplo completo, pero no sé cómo se hace en MySQL, ya que solo uso PostgreSQL en estos días. Pero estoy seguro de que el manual de MySQL le proporcionará la sintaxis completa. – Flimzy
posible duplicado de [Una tabla Mysql con múltiples columnas TIMESTAMP] (http://stackoverflow.com/questions/4851672/one-mysql-table-with-multiple-timestamp-columns) –