pgsql 批量导入数据

postgresql用execute_values() 批量导入数据,我想先插入数据如果主键冲突就更新。这个占位符该怎么写啊?总是报错“syntax error at or near "FROM"”

sql = f"""INSERT INTO {tableName} VALUES (newData.id, newData.name, newData.age, newData.score) 
ON CONFLICT(id) DO UPDATE SET score = newData.score FROM (values %s) AS newData (id, name, age, score);"""

data = importDataFrame.to_numpy()
psycopg2.extras.execute_values(cur, sql, data, page_size=1000)