NodeJS + MySQL: ER_DUP_ENTRY: Duplicate entry for key 'PRIMARY'

99
13 июня 2021, 04:50

Таблица 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. Это нормально?

READ ALSO
Интеграция Spring Reactive с Spring MVC + MySQL

Интеграция Spring Reactive с Spring MVC + MySQL

Пытаюсь разобраться, могу ли я использовать Spring Reactive (Flux/Mono) вместе с Spring MVC ? Структура микросервисы с использованием Spring MVC + Feign Client, Eureka Server...

99
ошибка cookie php [дубликат]

ошибка cookie php [дубликат]

Сейчас учу php,дошел до изучения куки,но функция setcookie не работает ни в какую и вызывает ошибкуВот собственно код(даже скопи-пастил код из офф

118
Запрос MySQL с 3 и более вариантами OR

Запрос MySQL с 3 и более вариантами OR

Помогите, делаю поиск по БД, но не могу понять как правильно сформировать запросЕсть таблица, в которой 10 столбцов, Я хочу что бы через форму...

86