Ir para conteúdo
Fórum Script Brasil

MARCO ELOY

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre MARCO ELOY

MARCO ELOY's Achievements

0

Reputação

  1. GET_LOCK Segue o mesmo principio do lock tables... não da pra usar dentro deprocedure e a inserção na tabela é feita via proedure. O melhor resultado que eu obtive foi mesmo usando uma trigger no before insert que calcula a pk. O grilo continua sendo o insert simultaneo, uma vez que o select é mais rápido que o insert/update e o valor da chave que eu guardo em tsys_sequencia.CODIGO_TITULO so muda depois do fim da 1a tranzação, que facilmente ocorre entre o select e o insert da 2a.
  2. A tabela ta com 10.000 registros e é consultada constantemente. Alem disso tenho inserssies concorrentes. Isso pode ficar lento e não me garante a atomicidade na chave uma vez que umaa 2a consulta pode ser freira antes da 1a insersao, o que geraria chave duplicada. Acumulei o valor numa outra tabela e criei uma trigger para calculo da chave mas ainda naop testei a inserssão concorrente. Tente usar o "lock table" mas o mysql não adimite essa funcao dentro de scripts! DELIMITER $$ UPDATE tsys_sequencia set CODIGO_TITULO = (SELECT MAX(TREC_CODIGO_PK+1) FROM trec_aberto); DROP TRIGGER IF EXISTS TG_BI_TREC_ABERTO; CREATE TRIGGER TG_BI_TREC_ABERTO BEFORE INSERT ON trec_aberto FOR EACH ROW BEGIN SELECT CODIGO_TITULO + 1 INTO @CODIGO_TITULO FROM tsys_sequencia; UPDATE tsys_sequencia set CODIGO_TITULO = @CODIGO_TITULO; SET NEW.TREC_CODIGO_PK = @CODIGO_TITULO; END; $$ DELIMITER ; Nunca utilizaei semaforos... vou pesquisar
  3. Olá a todos, Existe uma forma de inibir o DECREMENTO no valor do AUTOINCREMENT de uma tabela quando o ultimo registro dela é removido? INSERT INTO TabAtivo(CAMPO) VALUES (NULL); #INSERIU 1 / AUTOINCREMENT PASSA A SER 2 INSERT INTO TabAtivo(CAMPO) VALUES (NULL); #INSERIU 2 / AUTOINCREMENT PASSA A SER 3 INSERT INTO TabAtivo(CAMPO) VALUES (NULL); #INSERIU 3 / AUTOINCREMENT PASSA A SER 4 DELETE FROM TabAtivo WHERE CAMPO = 3; #REMOVEU 3 / AUTOINCREMENT VOLTA A SER 3
×
×
  • Criar Novo...