------------------------------------- | user_id | user_name | user_visits | ------------------------------------- | 1 | foo | 5 | ------------------------------------- | 2 | bar | 12 | -------------------------------------
user_id: auto increament, user_visits: по умолчанию 1
INSERT INTO table (имя_пользователя) VALUES ('baz'), ('bar'), ('qux');
вышеуказанный оператор, разумеется, вставляет 3 новые записи, в результате:
------------------------------------- | user_id | user_name | user_visits | ------------------------------------- | 1 | foo | 5 | ------------------------------------- | 2 | bar | 12 | ------------------------------------- | 3 | baz | 1 | ------------------------------------- | 4 | bar | 1 | ------------------------------------- | 5 | qux | 1 | -------------------------------------
но я пытаюсь достичь:
------------------------------------- | user_id | user_name | user_visits | ------------------------------------- | 1 | foo | 5 | ------------------------------------- | 2 | bar | 13 | ------------------------------------- | 3 | baz | 1 | ------------------------------------- | 4 | qux | 1 | -------------------------------------
так буквально,
если поле имя_пользователя существует, обновите user_visits, иначе вставьте новую запись.
Можно ли это сделать с помощью одной инструкции insert?