Задать вопрос
Gover2e2827
@Gover2e2827

Не правильные или отсутствующие значения sql с использованием mariaDB что с ней не так?

Делаю вот такой запрос к таблице:
function DelAcc_GET_PersonsCreate(sid)
    local query = [[
        SELECT PersonsCreate FROM qq_player_acc WHERE SteamID = '^sid'
    ]]
    query = query:gsub("%^sid", sid)
    return tonumber(do_query_data(query))
end

И результат бывает либо nil либо 2 (когда собираются данные) -
function DelAcc_Start_MySQL(login, sid, time)
    local query = [[
        INSERT INTO qq_player_acc(
        Login,
        SteamID,
        qqCoin,
        Rep,
        Persons,
        PersonsCreate,
        DateCreate,
        LastVisit)
        SELECT 
            '^login',
            '^sid',
            '50',
            '0',
            '0',
            '2',
            '^time',
            '^time'
        
        WHERE NOT EXISTS(SELECT * FROM qq_player_acc WHERE SteamID='^sid');
        ]];
    
    query = query:gsub("%^login", login)
    query = query:gsub("%^sid", sid)
    query = query:gsub("%^time", time)

    do_query(query)
end

Тут аналогия какая: При отсутствие данные они создаются и заполняются с сервера конкретными данными
6756bafb8a2e6473989081.png
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
По смыслу происходящего во втором блоке кода - значение в поле SteamID таблицы qq_player_acc должно быть уникальным.

Соответственно два вопроса.

1. Объявлено ли указанное поле в структуре указанной таблицы уникальным? Если нет - то почему? Добавьте требование уникальности.

2. Что мешает выполнить обычный INSERT IGNORE или, если надо обновлять существующую запись введёнными значениями, то INSERT ODKU или REPLACE INTO?

PS. INSERT {table} .. WHERE EXISTS ( {table} ) - вообще-то недопустимый синтаксис.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы