Я тестирую некоторый код JavaScript в узле, пакет mysql в узле и mysql в терминале кода Visual Studio.
Я перепробовал все, что мог придумать - добавление (), '', "" и т. Д ... Я разделил оператор на просто оператор обновления и просто оператор вставки и запустил еготаблица в phpmyadmin ... и что удивительно, каждое утверждение работает просто отлично! Только когда я добавляю «IF @@ ROWCOUNT = 0», весь оператор ломается.
Мой скрипт выполняет следующий оператор SQL, который сохраняется в переменной javascript:
var sql = "UPDATE players SET userID='123',username='FNNewUser',site='blah' WHERE userID='123' IF @@ROWCOUNT=0 PRINT 'NO ROWS UPDATED'";
Когда я запускаю сценарий, он действует так, как будто он будет работать, но затем выдает следующую ошибку:
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF @@ROWCOUNT=0 PRINT 'NO ROWS UPDATED'' at line 1
at Query.Sequence._packetToError (C:\node\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Query.ErrorPacket (C:\node\node_modules\mysql\lib\protocol\sequences\Query.js:77:18)
at Protocol._parsePacket (C:\node\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\node\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\node\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\node\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (C:\node\node_modules\mysql\lib\Connection.js:91:28)
at Socket.<anonymous> (C:\node\node_modules\mysql\lib\Connection.js:525:10)
at Socket.emit (events.js:189:13)
at addChunk (_stream_readable.js:284:12)
--------------------
at Protocol._enqueue (C:\node\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Connection.query (C:\node\node_modules\mysql\lib\Connection.js:201:25)
at axios.get.then.response (C:\node\df-lineups.js:34:8)
at process._tickCallback (internal/process/next_tick.js:68:7)
Я пытаюсь проверить, существует ли запись в mysql, и действительно ли запись DOESN'Существует ... затем выполняется оператор вставки. Хотя на этот вопрос, вероятно, уже был дан ответ в StackO, меня также очень интересует, почему, когда я добавляю условие IF в свой оператор SQL, возникает ошибка.