JulianaCXRP Posted July 31, 2023 Share Posted July 31, 2023 Olá tudo bem, estou precisando de uma simples ajuda creio que podem me ajudar, atualmente criei um resource para meu servidor utilizando MySQL, agora estou transferindo tudo para SQLite porém estou me deparando com alguns problemas como: Código antigo: "SELECT * FROM interiors WERE id = LAST_INSERT_ID()" Código novo porém não funciona da mesma forma. "SELECT * FROM interiors WERE id = LAST_INSERT_ROWID() O novo código não está fazendo a mesma função de pegar o último id inserido na database igual o código antigo, alguma sugestão pessoal? 1 minute ago, JulianaCXRP said: Olá tudo bem, estou precisando de uma simples ajuda creio que podem me ajudar, atualmente criei um resource para meu servidor utilizando MySQL, agora estou transferindo tudo para SQLite porém estou me deparando com alguns problemas como: Código antigo: "SELECT * FROM interiors WERE id = LAST_INSERT_ID()" Código novo porém não funciona da mesma forma. "SELECT * FROM interiors WERE id = LAST_INSERT_ROWID() O novo código não está fazendo a mesma função de pegar o último id inserido na database igual o código antigo, alguma sugestão pessoal? "SELECT * FROM interiores WERE id = LAST_INSERT_ROWID()" Link to comment
Other Languages Moderators Lord Henry Posted July 31, 2023 Other Languages Moderators Share Posted July 31, 2023 Qual sentença você usou para criar a tabela? E qual o objetivo de obter o último ID? Link to comment
Other Languages Moderators androksi Posted August 3, 2023 Other Languages Moderators Share Posted August 3, 2023 E aí, @JulianaCXRP — como é que você tá? Primeiramente, devo apontar um erro comum de digitação que acontece. Sua cláusula MySQL tá incorreta, o correto seria WHERE, enquanto no código mostrado está WERE. Embora você mencionou que o código antigo estava funcionando corretamente, dentro do MTA não é uma boa prática usar a função MySQL LAST_INSERT_ROWID. Uma solução para isso seria criar uma variável de controle. Sempre que você iniciar o script (onResourceStart) faça uma chamada no banco de dados, com o SELECT e atribua àquela variável anteriormente mencionada. Exemplo: local lastInsertRowId = 0; addEventHandler( "onResourceStart", resourceRoot, function( ) local dbConnection = ... -- Sua conexão com o banco de dados. local function callback( qh ) local poll = dbPoll( qh, 0 ); if ( #poll <= 0 ) then lastInsertRowId = 0; return; end lastInsertRowId = poll[ #poll ].id; end dbQuery( callback, dbConnection, "SELECT * FROM `...`;" ); end ); Estou considerando que a coluna na sua tabela do banco de dados tenha o nome id. Importante: não se esqueça que você deve implementar a função AUTO_INCREMENT nessa coluna. Concluindo, sempre que você adicionar mais uma entrada no banco de dados, lembre-se de acrescentar mais um (+1) naquela variável, apenas para fins de controle e nada sairá da contagem correta. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now