查询更新更新列表中未提及的时间戳列
query updating a timestamp column not mentioned in list of updates
我只想更新数据库中的一列,但出于某种原因,我的 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。
我只想更新总 Duration 列,但出于某种原因,startTime 列也会更新。
输出字符串如下所示:
UPDATE rackusage set totalDuration =30 where (rackID = '2' and startTime
LIKE '%2017-05-30 18:34:36%');
这是生成的数据库:
您的 startTime
列似乎是这样定义的。
startTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
将您的 UPDATE
查询更改为包含 SET startTime = startTime
,您将击败默认的 ON UPDATE
部分。这样的事情应该可以解决问题。
UPDATE rackusage set startTime = startTime, totalDuration =".$timeDiff." ...
如果 O.Jones 正确并且您不想更新列 statTime 的值,您可以在您的数据库上处理此语句:
ALTER TABLE rackusage
CHANGE `startTime` `startTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
我只想更新数据库中的一列,但出于某种原因,我的 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。 我只想更新总 Duration 列,但出于某种原因,startTime 列也会更新。 输出字符串如下所示:
UPDATE rackusage set totalDuration =30 where (rackID = '2' and startTime
LIKE '%2017-05-30 18:34:36%');
这是生成的数据库:
您的 startTime
列似乎是这样定义的。
startTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
将您的 UPDATE
查询更改为包含 SET startTime = startTime
,您将击败默认的 ON UPDATE
部分。这样的事情应该可以解决问题。
UPDATE rackusage set startTime = startTime, totalDuration =".$timeDiff." ...
如果 O.Jones 正确并且您不想更新列 statTime 的值,您可以在您的数据库上处理此语句:
ALTER TABLE rackusage
CHANGE `startTime` `startTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP