ER_PARSE_ERROR: у вас есть ошибка в вашем синтаксисе SQL;

MySQL.Async.fetchAll('INSERT INTO position (id, x, y, z) VALUES (@id, @x, @y, @z)', 
{['@id'] = identifier, ['@x'] = coords.x, ['@y'] = coords.z, ['@z'] = coords.z})

Привет. Я учусь программировать, и я написал простую команду выше для моего сервера FiveM, но по какой-то причине он возвращает код ниже, когда все должно быть в порядке. Я проверил, и все в порядке с идентификатором и координатами, поэтому проблема должна быть, как указано, синтаксис.

[MySQL] [testeServerClient] An error happens on MySQL for query "INSERT INTO position (id, x, y, z) VALUES (@id, 0, 0, 0)": ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'position (id, x, y, z) VALUES (@id, 0, 0, 0)' at line 1

Кто-нибудь знает как это исправить? Моя версия MariaDB - 10.4.11-MariaDB . Спасибо!

Всего 1 ответ


the right syntax to use near 'position (id, x, y, z) VALUES (@id, 0, 0, 0)' at line 1

Мне кажется, это не передача ID в values . Не следует, если для столбца id установлено значение auto_increment вы даже не должны включать его в свою вставку.

Правильный синтаксис для вставки новой строки в таблицу, если в столбце id включен auto_increment :

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

В противном случае, похоже, что это проблема, отличная от вашего запроса, поскольку получение 0 0 0 значений для столбцов xyz не имеет значения для id - оно все равно отображается как @id что недопустимо, поскольку столбец id , как я надеюсь, есть. столбец INT .


Есть идеи?

10000