Methode, um zu verhindern, dass zwei NOW()-Spalten gleichzeitig aktualisiert werden, wenn NOW() einer Spalte aktualisiert wird
P粉043566314
P粉043566314 2024-04-04 21:34:34
0
1
315

Ich habe einen Tisch, der zwei unterschiedliche aktuelle Zeiten erfordert. Erstens habe ich eine Einfügeprozedur, die Aktionsnummer, msgSentFrom_F_ID, msgSentTo_M_ID und sentDate einfügt. Zweitens aktualisieren Sie den Aktualisierungsprozess von „RespondDate“. Mein Problem ist, dass sendDate beim Aktualisieren von „responderDate“ auf den gleichen Zeitpunkt aktualisiert wird wie beim Aktualisieren von „responderDate“. Was habe ich falsch gemacht? (Meine Absicht ist, dass das Sendedatum die aktuelle Uhrzeit sein soll, wenn ich es einfüge, und eine andere aktuelle Uhrzeit, wenn ich das Antwortdatum aktualisiere.)

CREATE TABLE IF NOT EXISTS actions (
  actionnumber INT AUTO_INCREMENT PRIMARY KEY,
  msgSentFrom_F_ID INT, 
  msgSentTo_M_ID INT,
  sentDate TIMESTAMP,
  respondDate TIMESTAMP NULL,
  FOREIGN KEY (msgSentFrom_F_ID) 
    REFERENCES femaleUsers(femaleuserId)
  FOREIGN KEY (msgSentTo_M_ID) 
    REFERENCES maleUsers(maleuserId)
);

DELIMITER //
create procedure (param_F_ID INT,param_M_ID INT,Sdate TIMESTAMP)
  BEGIN
  INSERT INTO actions (msgSentFrom_F_ID, msgSentTo_M_ID, sentDate) 
    VALUES (param_F_ID,param_M_ID,Now());
  END; //
DELIMITER ;

CALL insert_actions ('5','5',NOW());

DELIMITER //
create procedure update_respondDate (param_ActionNum INT, 
    param_respondDate TIMESTAMP)
  BEGIN
  UPDATE actions set respondDate = param_respondDate 
  WHERE  actionnumber = param_ActionNum;
  END; //
DELIMITER ;

CALL update_respondDate('6',NOW());

P粉043566314
P粉043566314

Antworte allen(1)
P粉574695215

听起来您禁用了系统变量 explicit_defaults_for_timestamp文档解释了此结果: p>

由于 sentDate 是表中的第一个 TIMESTAMP 列,因此每当您对该行进行任何更改时,它都会自动设置为当前时间。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!