使用条件逻辑:检查记录是否存在;如果有,请更新它;如果没有,请创建它
技术问答
274 人阅读
|
0 人回复
|
2023-09-12
|
昨晚问了这个问题,得到了合并信息(在postgresql不可用)。我愿意尝试建议的解决方案,但我只是想知道为什么条件逻辑不能完成。
0 Y# ^) H5 u n/ n我已经澄清了这个问题,所以也许会更容易理解。* r5 R' J7 K( f
我有一个查询,将数据插入表中。但每次都在创建新的记录。有没有办法检查线是否先存在,然后是否存在?UPDATE,是否不存在INSERT?* o2 T3 K" u2 O
$user = 'username';$timestamp = date('Y-m-d G:i:s.u');$check_time = "start"; //can also be stop$check_type = "start_user"; //can also be stop_user$insert_query = "INSERT INTO production_order_process_log ( production_order_id,production_order_process_id,$check_time,$check_type)VALUES ( '$production_order_id','$production_order_process_id','$timestamp','$user')";这个想法是,该表将记录签入和签出值(production_order_process_log.start和production_order_process_log.stop)。因此,在记录签字时间戳之前,检查是否应检查$production_order_process_id已经存在了。如果它确实存在,时间戳可以进入stop并$check_type能stop_user。否则,他们可以留下来start和start_user。2 Q6 c6 @2 c* @7 B
我基本上想避免这个结果。
" ]3 D% N" K d1 u. R( _* | ---- --------------------- -------------------------------- -------------------- ------------------- ------------- ------------- | id | production_order_id | production_order_process_id | start | stop | start_user | stop_user | ---- --------------------- -------------------------------- -------------------- ------------------- ------------- ------------- | 8 |233333 | | 12 july 03:23:23 | NULL | tlh | NULL | ---- --------------------- -------------------------------- -------------------- ------------------- ------------- ------------- | 9 |233333 | | NULL | 12 july 03:45:00 | NULL | tlh | ---- --------------------- -------------------------------- -------------------- ------------------- ------------- ------------- 非常感谢您帮助我避免使用它postgresql逻辑完成这项任务。
5 }7 U7 d2 j0 r' R: ]1 [4 r 6 |; `! A* H* z
解决方案: |
|
|
|
|
|