由于某种原因,当我使用replace时,我的脚本没有删除现有的行。Mysql REPLACE无法正常工作
我工作的库存管理系统,我可以调用这个脚本每隔一小时左右更新DB:
REPLACE INTO inventory(username, sku,asin,set_price,inventory)
VALUES('trav','AEG5502','B00875JE0C','23.49','');
但不是删除旧行,它会创建一个新的行与完全相同的信息。
我敢肯定这是一个简单的错误,但我会爱如果有人能帮助我。
附加信息,一行约有15列。这些列中没有一个(username
,sku
,asin
,set_price,inventory
)是primary key
,我不知道这是否是替代工作的情况,但我想我会提到它。
感谢
REPLACE的工作方式与INSERT完全相同,只是如果表中的旧行具有与PRIMARY KEY或UNIQUE索引的新行相同的值,则旧行在插入新行之前被删除。 – hank 2013-03-20 06:44:00
Offtopic。但我看到你在该行插入用户名。包含user_id而不是名称会更明智。如果用户名更改会怎么样? – Bart 2013-03-20 06:46:46
@bart:假设正确的外键设置,您可以级联这样的更改。 – 2013-03-20 13:54:25