【发布时间】:2013-03-09 03:46:21
【问题描述】:
由于某种原因,当我使用替换时,我的脚本没有删除现有行。
我正在开发一个库存管理系统,我可能每隔一小时左右调用一次这个脚本来更新数据库:
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 索引的新行具有相同的值,则在新行被删除之前旧行被删除插入。
-
离题。但我看到你在行中插入了一个用户名。包含 user_id 而不是名称更明智。如果用户名发生变化怎么办?
-
@bart:假设外键设置正确,您可以级联这样的更改。
标签: php mysql sql replace sql-update