DEFINIR CHAVE PRIMARIA.
ou ser capaz de inserir um sequencial no mes 03 mesmo ele sendo lançado no mes 04 entende?
Eu ja utilizo Trigers em várias situações más não entendo como aplicar uma trigger pra gerar um codigo sequencial de chave primaria.
por ex:
Lançamentos mes: 03
1 03 2016
2 03 2016
3 03 2016
Lançamentos mes: 04
1 04 2016
2 04 2016
Aà chega um produto do mes 03 que esqueceram de cadastrar no mes 03 más ele é Obrigatório ser registrado no sequencial do mes 03 mesmo sendo cadastrado no mes 04 entao vai ser registrado o produto [Ô]04 03 2016[Ô] mesmo sendo no mes 04..
é que não conheço bem MySQL, mas se você quer sequence por ano e mes, talvez uma tabela com os campos ano, mes, sequencial e sempre que precisar de um sequencia, busque por ano e mês, pegue o sequencial, some + 1, em seguida guarde este valor já com somatório no campo sequencia para o ano e mês, de forma a ser utilizado como inÃcio no próximo procedimento.
Como o colega Cleverton falou, você poderá usar uma Trigger. Um gatilho, neste caso, poderia ser no momento de insert da tabela com dados principais sendo gravados, sendo que o gatilho buscaria o proximo valor de sequencial na tabela com ano e mês, atualizaria em + 1 nesta tabela e também gravaria este mesmo valor sequencial na sua tabela com dados principais.
No momento é o que me ocorre.
Aproveitando a dúvida do colega, vc pode colocar uma condição na SEQUENCE ?
To zerando a chave primary no fim do mes.. vou rodar um Event_Scheduler no fim do mes:
ALTER TABLE cad_form101_novo AUTO_INCREMENT = 1;
codigo = PK Autonumerica
mes e ano puxo da data do pc.
deu certo será q e mt gato?
Fico feliz que tenha conseguido, mas me chamou a atenção o zeramento da chave primária.
Quando você fizer o zeramento, o próximo número será 1, novamente. Ocorre que o número 1 já vai existir e dará erro de duplicidade de chave primária.
A menos que ano e mês sejam, também, chave primária, assim mesmo que o 1 (ou qualquer outro sequencial) se repita não haveria erro, visto que ano e mês não se repetiriam para o sequencial.
Assim, se a chave primária for composta, ou seja, o sequencial + o mês + o ano, então fluiria bem, sendo que para pegar o próximo sequencial do ano e mês bastaria solicitar max(sequencial) + 1 quando ano = (ano desejado) e mês = (mês desejado).
Tudo de bom.
Citação::
Colega MESTRE,
Fico feliz que tenha conseguido, mas me chamou a atenção o zeramento da chave primária.
Quando você fizer o zeramento, o próximo número será 1, novamente. Ocorre que o número 1 já vai existir e dará erro de duplicidade de chave primária.
A menos que ano e mês sejam, também, chave primária, assim mesmo que o 1 (ou qualquer outro sequencial) se repita não haveria erro, visto que ano e mês não se repetiriam para o sequencial.
Assim, se a chave primária for composta, ou seja, o sequencial + o mês + o ano, então fluiria bem, sendo que para pegar o próximo sequencial do ano e mês bastaria solicitar max(sequencial) + 1 quando ano = (ano desejado) e mês = (mês desejado).
Tudo de bom.
é uma chave composta cara hehe..
consegui sem complicações.
Que bom que conseguiu.
Serve como parâmetro para futuros usuários com a mesma questão.
Sucesso em seu projeto.
Citação::
Colega Mestre,
Que bom que conseguiu.
Serve como parâmetro para futuros usuários com a mesma questão.
Sucesso em seu projeto.
isso ai obrigado a todos pelo auxilio..