admin

根据是否存在行进行更新/插入

sql

处理一些postgreSQL查询。正如我在上一个问题中所说的那样。.我对SQL逻辑的了解非常有限。

我有此查询插入一行。

$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')
";

不幸的是,那每次都会添加一个新行。我想添加条件SQL,以便

如果production_order_process_id不存在,请按照上面查询中的说明进行INSERT。也就是说,用所有新信息添加新行

但如果production_order_process_id确实存在并且check_typestop_user随后更新该行以填充柱stop$timestamp和填充柱stop_user$user

我知道这很复杂。或者,至少对我而言,这是^^非常感谢您的帮助!


阅读 150

收藏
2021-07-01

共1个答案

admin

这通常称为 MERGE或upsert。PostgreSQL没有对此操作的明确支持。

2021-07-01