У меня есть две таблицы (скажем, таблица 1 и таблица 2), и у меня есть 8 столбцов в каждой таблице (v_id, p_id, cat, s1, s2, s3, s4, s5, s6, u_name, P_date)
Я хочу вставить значения в таблицу1 из таблицы2 со следующими условиями:
- если v_id уже существует в таблице 1, а p_id в таблице 2 совпадает с таблицей 1, он должен заменить v_id в таблице 1 на v_id в таблице 2
- если v_id не существует в таблице 1, он просто должен добавить эти v_ids в таблицу 1
- если v_id существует, но p_id в таблице 2 не совпадает с таблицей 1, он должен добавить v_ids к таблице 1
Пока я пробовал:
Я инициировал таблицы следующим образом:
CREATE TABLE IF NOT EXISTS table1(v_id, cat TEXT, s1 TEXT,s2 TEXT,s3 TEXT, s4 TEXT,s5 TEXT,s6 TEXT, u_name TEXT, p_date DATE, p_id TEXT)
CREATE TABLE IF NOT EXISTS table2(v_id, cat TEXT, s1 TEXT,s2 TEXT,s3 TEXT, s4 TEXT,s5 TEXT,s6 TEXT, u_name TEXT, p_date DATE, p_id TEXT)
Я вставил некоторые данные в таблицу 1 и таблицу 2 и попробовал следующий код:
INSERT OR REPLACE INTO table1 SELECT * FROM table2
LEFT JOIN table1 ON table2.v_id=table1.v_id
WHERE table2.p_id=table1.p_id OR table1.v_id IS NULL
Но мне выдается следующая ошибка:
"table table1 has 11 columns but 22 values were supplied"
что я делаю не так ??