Jump to content

Ajuda com SQLite


Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...