如果我有一个查询,其中字段1是主键:
$rep = "Replace into table (field1,field2) values ('value1','value2')";
$stmt = $db->query($rep);
有没有办法判断mysql是插入行还是找到并替换了行?
答案 0 :(得分:1)
对于后代:
$rowCount = $stmt->rowCount();
如果$ rowCount == 1,则为插入;如果$ rowCount == 2,则为替换。
答案 1 :(得分:0)
将INERT插入AggregatedData(datenum,Timestamp) 值(“ 734152.979166667”,“ 2010-01-14 23:30:00.000”) 重复键更新 Timestamp = VALUES(Timestamp)
要实现此类任务,mysql请向我们提供DUPLICATE KEY UPDATE
。
下面是示例,如果数据库中不存在记录,您将如何创建新记录,否则它将更新记录
$rep = "INSERT into table (primaryField,field2) values ('value1','value2') ON DUPLICATE KEY UPDATE primaryField=VALUES(primaryField)";
$stmt = $db->query($rep);
有关更多详细信息,请阅读此内容 https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
我认为这会对您有所帮助。