在MySQL中,如果上一次查询中没有重复项,如何插入记录
我需要执行2个insert查询。每个查询将在不同的表中插入数据。第一个查询具有ON replicate KEY UPDATE子句。我需要做的是防止第二个查询运行,因为第一个查询由于重复的密钥而导致更新 这是我目前的代码在MySQL中,如果上一次查询中没有重复项,如何插入记录,mysql,Mysql,我需要执行2个insert查询。每个查询将在不同的表中插入数据。第一个查询具有ON replicate KEY UPDATE子句。我需要做的是防止第二个查询运行,因为第一个查询由于重复的密钥而导致更新 这是我目前的代码 $insertEvent = $db->processQuery('INSERT INTO calendar_events (start_on, end_on, subject, owner_id, created_by, phone_call_id, status
$insertEvent = $db->processQuery('INSERT INTO calendar_events (start_on, end_on, subject, owner_id, created_by, phone_call_id, status )
VALUES (?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE start_on = ?, end_on =?, status = ? ',
array($start, $end, $subject, $owner, $created_by, $phone_call_id, $status, $start, $end, $status) );
$event_id = $db->lastinsertid();
$insertEvent2 = $db->processQuery('INSERT INTO calendar_attendees (event_id, owner_id) VALUE (?, ?)', array($event_id, $owner));
我只想在$insertEvent创建了一条新记录时执行$insertEvent2,否则忽略第二条语句
谢谢我相信您可以在第二次插入时使用语法,这样您的查询看起来像
INSERT IGNORE INTO calendar_attendees (event_id, owner_id) VALUES (?, ?)
确保对(事件id、所有者id)
有UNIQE
约束
顺便说一句,你的第二次插入有一个输入错误。它应该是
值
,而不是值
如果该事件已经存在于日历事件中,但在日历参与者中没有(或不同)参与者
,这是一个很好的解决方案。我不确定是否有办法在查询中添加一个条件,以便仅在执行第一个查询时才执行第二个查询。但你的解决方案是有效的。谢谢:)