MySQl: запуск вставки перед обновлением, если не существует - PullRequest
0 голосов
/ 15 сентября 2011

Я не очень знаком с MySQL. Но по причинам производительности я хочу избежать проверки, если строка уже существует. В настоящее время у меня есть таблица с 2 столбцами (число, количество), и я делаю что-то вроде этого:

SELECT num FROM numbers WHERE num = 123

тогда, если строка существует ...

UPDATE numbers SET count = count + 456 WHERE num = 123

иначе, если строка не существует ...

INSERT INTO numbers (num, count) VALUES (123, 456)

Есть ли возможность избежать опроса всегда за столом. Что-то вроде триггера ... В конце концов, я просто хочу сделать ОБНОВЛЕНИЕ, чтобы вставка выполнялась автоматически. заранее спасибо

1 Ответ

2 голосов
/ 15 сентября 2011

Вам не нужно использовать триггеры, все, что вам нужно сделать, это добавить уникальное ограничение в ваш столбец num и затем:

INSERT INTO numbers SET num = 123, count = 456 ON DUPLICATE KEY UPDATE count = count + 1;

Кроме того, не используйте зарезервированные слова для имен столбцов, таких как COUNT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...