由於某種原因,當我使用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