Имея пустую таблицу с тремя столбцами
CREATE TABLE AssyData ( AID int NOT NULL PRIMARY KEY UNIQUE , MaxDef float , MaxDefLC int , MaxDefNID int , Comps text , SubAssys text )
Я хотел бы обновить или вставить новые значения, если новый MaxMag больше текущего и если AID такой же. AID - это уникальный первичный ключ. Предполагая, что AID равен 100, я пробовал следующее, но безуспешно:
INSERT INTO AssyData
(AID , MaxDef , MaxDefLC , MaxDefNID , Comps , SubAssys)
VALUES( 100 , 101 , 202 , 203 , "" , "")
ON CONFLICT(AID)
DO UPDATE
SET
MaxDef = excluded.MaxDef ,
MaxDefNID = excluded.MaxDefNID ,
MaxDefLC = excluded.MaxDefLC ,
Comps = excluded.Comps ,
SubAssys = excluded.SubAssys
WHERE excluded.MaxDef > 100
Я получаю ошибку "около" ON ": синтаксическая ошибка"
Что не так с моим утверждением?
Спасибо, Шон, за подход.