我试图在PHP中执行两个查询。由于我不知道的原因,只执行1个查询而另一个不执行。如果我尝试运行以下命令,则第一次更新有效,但第二次查询没有。如果我评论第一个查询并运行它,第二次更新工作正常。任何想法为什么会这样?
$sql = "update " . $_POST["table"] . "_dtl
set cd_eff_end_ts = DATE_SUB( '" . $_POST["CD_EFF_STRT_TS"] . "', INTERVAL 1 SECOND)
where " . $_POST["pk"] . " = '" . $_POST[$_POST["pk"]] . "'
and cd_eff_end_ts = '3500-12-31 23:59:59'
and idw_cd_lfcyc_stat_typ_cd in ('RAP', 'RAM')";
$conn->query($sql);
$sql = "update " . $_POST["table"] . "_dtl
set rec_eff_strt_ts = current_timestamp,
rec_eff_end_ts = '3500-12-31 23:59:59',
idw_cd_lfcyc_stat_typ_cd = '" . $status ."',
idw_lfcyc_stat_ts = current_timestamp,
lfcyc_stat_decreed_by_user_id = " . $user . ",
idw_lfcyc_stat_rtnle_txt = '" . $_POST["IDW_LFCYC_STAT_RTNLE_TXT"] . "'
where rqst_nbr = " . $_POST["rqst_nbr"];
$conn->query($sql);
谢谢。
答案 0 :(得分:0)
感谢上面的评论,我意识到有重复的密钥。不应该有重复的密钥,因为它是代码和加载时间戳的复合密钥。有人将加载时间戳设置为更新时的当前时间戳,这会导致重复键。删除更新时修复了它。