我有一個price帶有列的表id,item_name,date,price。可以有多個價格item_name,例如:
ID item_name date price
320 item1 01-04-2022 1.40
321 item1 02-04-2022 1.3
322 item1 03-04-2022 1.42
323 item2 03-04-2022 2.54
324 item2 04-04-2022 2.6
該資料來自一個API并且我ID是自動增量的。我現在有一個腳本,它運行多次并且總是獲取這個 API。問題是,API每次都回傳相同的資料,所以如果我每次執行腳本時都運行正常的插入,我會有這樣的重復條目(注意ID):
ID item_name date price
325 item1 01-04-2022 1.40
326 item1 02-04-2022 1.3
327 item1 03-04-2022 1.42
328 item2 03-04-2022 2.54
329 item2 04-04-2022 2.6
只插入沒有這樣的行的正確SQL方式是date什么item_name?
uj5u.com熱心網友回復:
一種選擇是使用存在邏輯來阻止重復插入的發生:
INSERT INTO price (item_name, date, price)
SELECT -- your data here
WHERE NOT EXISTS (
SELECT 1
FROM price
WHERE date = <date to be inserted> AND
item_name = <item to be inserted>
);
另一種選擇可能是在(date, price). 這會在插入副本時導致例外。當您不希望經常發生此類重復時,此選項可能最有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/486211.html
上一篇:如何知道選擇查詢花費了多少時間?
