MySql Update字段或Insert如果不存在,则没有主键

时间:2012-03-16 14:42:29

标签: mysql insert

我有一个3列(所有数字)表,其中包含CustID(非唯一),ProdID(非唯一)和Price字段。唯一的“唯一性”是没有CustID / ProdID对重复。因此,每个客户对每个产品都有不同的“价格”。我正在使用三线方法。 (a)搜索是否存在配对,(b)如果是,我更新价格,(c)如果没有,我将新配对与价格一起插入。我还没有为id创建索引(它可以用于开发目的。)

任何人都可以建议使用REPLACE指令的方法,大多数INSERT / ON DUPE示例似乎暗示主键是必要的。我通常总是有一个PK,只是看起来很浪费这个要求。非常感谢任何有时间帮助我的人。 肯阿什顿

对不起,迈克尔,你已经给了我这个例子了。我现在要搞票了,非常感谢你们

1 个答案:

答案 0 :(得分:3)

根据迈克尔和托尼的建议,PK永远不会浪费。所以在每张桌子上都有一个PK是个好主意。所以我首先建议您创建一个PK,然后使用INSERT ON DUPLICATE KEY。

为了在没有PK的情况下实现您的目标,您可以先执行DELETE,然后执行INSERT。事实上,这就是REPLACE内部的作用。