sql - una - operaciones de actualización o update.
Eliminar en la condición de actualización sin soltar la tabla mysql (4)
Para su caso de uso, creo que estaría mejor servido con DATETIME
, por ejemplo:
ALTER TABLE `my_table`
CHANGE `my_col` `my_col` DATETIME NOT NULL DEFAULT NOW();
Esto se establecerá de forma predeterminada en NOW()
al insertar, pero no se verá afectado en la actualización.
Consulte esta pregunta para obtener una buena explicación de la diferencia: ¿Debo usar el campo ''datetime'' o ''timestamp''?
Tengo una tabla mysql y entradas de datos en ella:
CREATE TABLE `invoices`.`invoices` (
`InvoiceID` bigint(20) unsigned NOT NULL auto_increment,
`UserID` int(10) unsigned NOT NULL,
`Value` decimal(10,3) NOT NULL,
`Description` varchar(4048) NOT NULL,
`DateTime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`InvoiceID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin5;
Quiero eliminar la condición "en la actualización CURRENT_TIMESTAMP". ¿Cómo puedo alterar esta tabla?
el ans de aularon no eliminará la condición de actualización
Se puede eliminar usando los siguientes 2 comandos:
ALTER TABLE `invoices`.`invoices`
CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT 0;
ALTER TABLE `invoices`.`invoices`
CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Nota : esto funcionará solo en MySQL y no en SQL Server
ALTER TABLE `invoices`.`invoices`
CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ALTER TABLE `invoices` CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT ''0000-00-00 00:00:00''
o
ALTER TABLE `invoices` CHANGE `DateTime` `DateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP