Таблица MySQL counter
:
create table counter (
key bigint not null primary key,
count int default '1' null
);
Записей в таблице ~ 400 000 шт.
Задача: увеличить счетчик (поле count) по ключу (поле key). Ключ key либо уже существует в таблице, либо необходимо добавить новую строку с новым key и значением счетчика count=1.
Логика Javascript NodeJS:
const amount = 365 // значение для добавления к счетчику
getKey(key)
.then(keyCount => { // пришло значение keyCount - текущее значение count по ключу key
if (keyCount > 0) { // 0 - если нет ключа (count нулю равняться не может)
// Здесь делаем UPDATE по ключу key, прибавляя amount к count
// ...
} else {
// Здесь делаем INSERT нового ключа со значением счетчика = 1
// ...
// МЕСТО СРАБАТЫВАНИЯ EXCEPTION (catch error)
}
})
Функция, осуществляющая select из базы (Javascript NodeJS):
const getKey = key => new Promise((resolve, reject) => {
execute("SELECT `count` FROM `counter` WHERE `key`='" + key + "'") // запрос к базе через npm модуль mysql (v.2.15.0)
.then(response => resolve((response.length > 0 && _.has(response[0], 'count')) ? parseInt(response[0].count) : 0))
.catch(error => reject(`ОШИБОНЬКА! ${error}`))
})
ПРОБЛЕМА! Вылетает исключение:
ER_DUP_ENTRY: Duplicate entry '.....' for key 'PRIMARY'
Ключ в базе существует, значение счетчика также существует, но npm модуль mysql
возвращает []
как результат комманды SELECT. Это нормально?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь разобраться, могу ли я использовать Spring Reactive (Flux/Mono) вместе с Spring MVC ? Структура микросервисы с использованием Spring MVC + Feign Client, Eureka Server...
Сейчас учу php,дошел до изучения куки,но функция setcookie не работает ни в какую и вызывает ошибкуВот собственно код(даже скопи-пастил код из офф
Помогите, делаю поиск по БД, но не могу понять как правильно сформировать запросЕсть таблица, в которой 10 столбцов, Я хочу что бы через форму...