我只想更新数据库中的一列,但出于某种原因,我的mysql查询也更新了另一列。
我的代码看起来有点像这样:
$sql = "UPDATE rackusage set totalDuration =".$timeDiff." where (rackID = '".$rackID."' and startTime LIKE '%".$getStartTime."%');";
echo "<br>";
echo $sql;
echo "<br>";
$res = mysql_query($sql);它在php里。我只想更新总持续时间列,但出于某种原因,startTime列也会得到更新。输出字符串如下所示:
UPDATE rackusage set totalDuration =30 where (rackID = '2' and startTime
LIKE '%2017-05-30 18:34:36%');这是得到的数据库:

发布于 2017-05-30 13:22:04
您的startTime列似乎是用这样的内容定义的。
startTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,将UPDATE查询更改为包含SET startTime = startTime,您将击败默认的ON UPDATE部分。像这样的东西应该能起作用。
UPDATE rackusage set startTime = startTime, totalDuration =".$timeDiff." ...发布于 2017-05-30 13:26:26
如果O.Jones是正确的,并且不希望更新列statTime的值,则可以在数据库中处理以下语句:
ALTER TABLE rackusage
CHANGE `startTime` `startTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMPhttps://stackoverflow.com/questions/44263302
复制相似问题