0
我知道有很多關於INSERT/UPDATE的線程,但是我沒有找到解決我的問題的方法。MySQL:如果不存在,插入的最佳方式是什麼?
我有兩個表來管理選項:
# table 1: option_fields
id | label | type | default
# table 2: option_values
id | field_id | user_id | value
注:FIELD_ID和user_ID的應該是外國鍵,但事實並非如此。
我想插入option_values如果條目不存在,pseudeo代碼:
IF (field_id != 1 AND user_id != 2):
INSERT
INTO option_values (field_id, user_id, value)
VALUES (1, 2, "text")
ELSE:
UPDATE option_values
SET value = "text"
WHERE field_id = 1 AND user_id = 2
ENDIF;
我所知道的方式:
#1:對重複KEY 不工作因爲唯一的主鍵是「ID」
#2:REPLACE 我不想使用REPLACE,因爲我認爲它的a骯髒的方式(每次有人改變他的選項時,主鍵會被計數)。
#3:MySQL IF,那麼 使用太多的性能,似乎也很髒。
你會選擇什麼樣的解決方案,爲什麼?我猜#1是最好的,但我無法使用它。
在此先感謝!