【发布时间】:2020-05-22 13:37:54
【问题描述】:
我的问题很简单,但最后一天让我发疯了,我找不到任何与我的问题完全相关的清晰、简洁的信息。我有以下查询
INSERT INTO people_names SET lastname = ?, firstname = ?, lifespan = ?
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), lastname = VALUES(lastname), firstname = VALUES(firstname), lifespan = VALUES(lifespan)
基本上我想要它做的是插入数据(来自表单并正确收集 - 这部分有效),如果该人已经存在于表中,只需更新该行以便我可以获得id 通过 LAST_INSERT_ID,否则为表中的人员创建一个新条目(如果该名称和寿命不存在)。该人与其他东西具有多对多关系,因此我需要获取其 ID,无论它是否已插入或检测为已经存在,以放入另一个处理多对多关系的表中。 people_names 表中的“id”是一个自增主键。
但是,假设我在 people_names 表中已经有一个人,姓氏“Doe”,名字“John”,寿命“1900-1999”,然后我在表格中输入相同的数据并将其发送到查询时,会在同一个表中创建一个具有完全相同信息(“Doe”、“John”、“1900-1999”)的新条目,而不是更新已经存在的条目。
我做错了什么??
【问题讨论】: