在插入时,我正在捕获独特的约束mysql_errno()1062。

这可以正常工作,但我想找到现有的行以重新安置或修改它。

是否有方法可以获取插入失败的行ID?我尝试了mysql_insert_id(),但意识到这只会返回要插入(或未能插入)的行,因此我得到0。

除了发布另一个mysql_query并简单地对重复值执行选择,是否没有选项?

我只想确保没有更好,更快,更经济的方法来做到这一点。

有帮助吗?

解决方案

如果您试图在新的或更新现有值的情况下插入行,则 替换为 是您需要的。也要考虑 插入...在重复的密钥更新语法上 如果有限制因素作为替换涉及将删除,然后插入。

其他提示

您必须检查表是否有任何“唯一”键(SHOW CREATE TABLE 将列出所有),然后查询表格中的关联值。因此,如果您要插入a,b,c,d和b,c具有独特的钥匙,那么:

SELECT id, B, C FROM table WHERE B=$B and C=$C;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top