我已在 steamid
的数据库表上放置了唯一索引。我不确定如何插入具有该键的重复值的记录(删除旧记录)而不会出现错误。有人可以编辑我的代码以使其适合吗,谢谢。
$sql = "INSERT INTO steam_data (reg_date, reg_year, steamname, steamid) VALUES ('$dateoutput', '$dateoutputyear', '$personaname', '$steamid')";
错误是:
Error: INSERT INTO steam_data (reg_date, reg_year, steamname, steamid) VALUES ('March 20, 07:09pm', '2017', 'Aweosmedude', '76561113498123831721') Duplicate entry '76561113498123831721' for key 'steamid'
最佳答案
这意味着您的 steam_data
表中已经有一条 streamid=76561113498123831721
的记录;并且您的架构中有一项约束,可确保您没有多个 streamid
。因此,您可以执行 INSERT IGNORE INTOstream_data...
或执行 INSERT INTOstream_data...ON DUPLICATE KEY...
例如
在重复 key 更新时插入 steam_data (reg_date, reg_year, steamname, steamid) VALUES ('$dateoutput', '$dateoutputyear', '$personaname', '$steamid') steamname=VALUES(steamname) ;
(@ReneS 答案有 INSERT IGNORE INTO...
示例)
关于php - 删除或更新 SQL 中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42898713/