habe ich eine Tabelle mit zwei Zeitstempel Felder gebildet mit -Copy Zeitmarkenwert nicht von einer Spalte zu einem anderen
CREATE TABLE `test`
(`id` INT NOT NULL AUTO_INCREMENT ,
`first_date` TIMESTAMP NULL ,
`second_date` TIMESTAMP on update CURRENT_TIMESTAMP() NULL ,
PRIMARY KEY (`id`)) ENGINE = InnoDB;
I eingefügt zwei Reihen mit
INSERT INTO `test` (`id`, `first_date`, `second_date`)
VALUES (NULL, NULL, '2017-10-18 17:02:14'), (NULL, NULL, '2017-10-18 17:02:14');
Nun, ich brauche die zweite kopieren Datumswert für die erste Datumsspalte, aber wenn ich die Aktualisierungsabfrage ausprobiere, wird der Datumswert auf das heutige Datum aktualisiert.
update test set first_date = second_date where id=<row_id>
id | first_date | second_date
----------------------------------------------
3 | 2017-11-17 16:09:03 | 2017-11-17 16:09:29 --> This value was
4 | NULL | 2017-10-18 17:02:14 "2017-10-18 17:02:14"
5 | NULL | 2017-10-18 17:02:14 before the update query.
Irgendwie das on update CURRENT_TIMESTAMP()
Attribut des second_date schafft hier ein Problem. Wie würde ich den Wert aus der zweiten Spalte kopieren, ohne den vorhandenen Wert second_date
zu beeinflussen?
kann ich das Attribut entfernen und die Update-Abfrage auszuführen und das Attribut wieder neu zuweisen. Gibt es einen anderen Weg, um fortzufahren? – jitendrapurohit
Erstellen Sie eine weitere Tabelle mit ID- und zweiten Datumswerten. Verwenden Sie diese als Eingaben für eine Aktualisierungsabfrage. Aber das zweite Datum wird aktualisiert. (ODER ändern Sie die Tabelle, um die Aktualisierungsbedingung vorübergehend zu entfernen ... nicht meine bevorzugte Option) –
Ich bin neugierig, warum erwarte ich, dass es sich nicht ändert? Es ist speziell dafür eingerichtet * update * !? Aber es scheint, wenn Sie nur das 'second_date' in das Update aufnehmen, bekommen Sie, was Sie brauchen. https://www.db-fiddle.com/f/crg1DF4qn7wF5VKqu5Zy6R/0 (nicht sicher, wenn das Standardverhalten ist) – Yoshi