Кто-нибудь знает, как сделать этот синтаксис ниже в MySQL?
Без хранимой процедуры и только в одном запросе
SELECT CASE
WHEN COUNT(v.value) = 0 THEN (
INSERT INTO tbl_v (fid, uid, VALUE)
SELECT fid, 1 AS uid, 'xxxxxx' AS VALUE FROM tbl_f
WHERE category = 'categoryname' AND NAME = 'somevalue'
)WHEN v.value <> 'test' THEN (
'update syntax here' /* will be similar like insert statement above */
)ELSE (
v.value
)END
FROM shared_tbl_f f
INNER JOIN tbl_v v ON f.fid = v.fid
WHERE v.uid = 1 AND f.category = 'categoryname' AND f.name = 'somevalue'
Примечание:
Там нет первичного ключа на tbl_v
уникальная ссылка для tbl_v
является только комбинацией из столбца fid и столбца uid.
Поскольку tbl_v
является таблицей сопоставления (там нет первичного ключа) - fid и uid - это внешний ключ из другой таблицы.