我有一個作業表和另一個包含有關該作業參考 ID 的元資料:
`jobs`
id int; primary, unique
description varchar
location varchar
salary varchar
`metadata`
id int; primary, unique, auto-increment
job_id int
metadata_key varchar (ex. date updated)
metadata_value varchar (ex. 10-26/22)
每個 job_id 將有多行元資料,描述 metadata_key 和 metadata_value 中包含的作業的更多資訊
下面看一下元資料表:
meta_id job_id meta_key meta_value
13091 2144207 featured 1
13090 2144223 featured 0
13088 2144207 featured 0
13087 2144223 featured 0
13084 2144223 expire 10-30-22
13082 2144223 salary_to 250000
13081 2144223 salary_from 200000
13080 2144223 ft_expiry 10-30-22
13079 2144223 ft_date 10-26-22
如果元資料記錄不存在,則插入元資料記錄的最佳方法是什么(通過查詢,而不是存盤程序),例如添加“特色”記錄或如果給定 job_id 的鍵已經存在則更新?
ON DUPLICATE KEY 不起作用,因為元資料的唯一鍵是 id,我需要確定:
- 對于給定的 job_id(不是唯一的)
- 檢查 meta_key 值,如果不存在則插入,如果存在則更新
uj5u.com熱心網友回復:
UNIQUE KEY在這對列上定義 a (job_id, meta_key)。
然后你可以使用INSERT...ON DUPLICATE KEY UPDATE.
您甚至可以將這兩列設為主鍵,因為您實際上并不需要像這樣的表中的自增整數主鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/521029.html
標籤:mysql
上一篇:我怎樣才能有多個mysql聚合列
