处理一些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_type被stop_user随后更新该行以填充柱stop与$timestamp和填充柱stop_user用$user。
production_order_process_id
check_type
stop_user
stop
$timestamp
$user
我知道这很复杂。或者,至少对我而言,这是^^非常感谢您的帮助!
这通常称为 MERGE或upsert。PostgreSQL没有对此操作的明确支持。
MERGE