Nextval no mysql

Oi gente.

Estou portando (não migrando) uma aplicação em Oracle para mysql. A aplicação deve ser completamente independente de BD, mas ainda não é completamente.

No oracle usamos “SELECT sequence.nextval FROM DUAL” para obter o próximo valor a ser inserido na tabela. Esta estratégia é importante por que há bastante concorrência por ser usado simultaneamente por vários usuários, pela necessidade de transações e pela necessidade de conhecer-se o valor gerado na PK para que este possa ser usado com FK em outras tabelas na mesma transação.

Daí, na hora de portar para MySQL, o problema: MySQL usa autoincrement. É possível simular-se a estratégia de sequences sem sacrificar nenhum dos quesitos já existentes (concorrência, transações, usar a PK como FK em outras tabelas) e sem ter que refazer grande parte do código do zero?

Fala Armadilha tudo blz? vo tenta te ajudar

No mysql nao tem nada tao avancado qnt o oracle a solução e consultar o ultimo id cadastrada acresentar um nele trava o banco e fazer suas operações ai depois destrava,
E isso a falows v

[quote=mestreshake]Fala Armadilha tudo blz? vo tenta te ajudar

No mysql nao tem nada tao avancado qnt o oracle a solução e consultar o ultimo id cadastrada acresentar um nele trava o banco e fazer suas operações ai depois destrava,
E isso a falows v[/quote]

O que vem a ser este “trava” e “destrava”?
Quanto a concorrência, isso não buga não se dois usuários estiverem fazendo inserção na mesma tabela ao mesmo tempo?

Não sei se ajuda.

Quando você tem uma chave primária em uma tabela e faz um insert pode usar o

Ele mostrará o id do ultimo insert da sua conexão.

Outra solução possível é uma tabela para apenas guardar o numero da sequencia e adicionar mais 1 e atualizar.

Ex:

    -- Cria a estrutura
    CREATE TABLE sequence ( id int not null);
    insert into sequence (1);

    -- Atualiza e recupera o ID
    Update sequence set id = id+1;
    select LAST_INSERT_ID()