Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vazzoler

Criação de um campo AutoIncrement

Recommended Posts

Bom dia Galara. Tenho a seguinte situação: Possuo uma tabela com o ID, CNPJ, Razão Social, Descrição Protocolo, Data do Protocolo. Porém, este sistema é multi empresas, e o que separa os dados a serem acessados de uma empresa para outra é o campo CNPJ. Ou seja, quando a empresa X acessa a funcionalidade Protocolos, ela só visualiza os protocolos dessa empresa (claro) através do CNPJ utilizado no login. Até aí tudo ok. Agora preciso criar um campo novo chamado Nº Protocolo, porém preciso que este número seja sequencial para cada empresa a cada novo protocolo. Por exemplo: A empresa X cria o primeiro protocolo e este faça um AutoIncrement para 1, o segundo protocolo para 2 e assim por diante. Quando a empresa Y for criar seu primeiro protocolo, necessito que o AutoIncrement assinale este Nº para 1 e não siga a sequencia da empresa X. Alguém poderia me dar uma força em como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE `tabelinha` (
    `incrementasozinha` INT(11) NOT NULL AUTO_INCREMENT,
    `nomequalquer` VARCHAR(50) NOT NULL DEFAULT '',
    PRIMARY KEY (`incrementasozinha`)
)

 

Qualquer registro novo nesse banco o sql vai fazer a 'incrementasozinha' se alto completar.

Exemplo no primeiro registro fica 1, no segundo fica 2 e assim sucessivamente.

 

É isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não Omar. Esse é um campo comum de incremento. Isso minha tabela já tem... Como eu disse, preciso que o campo número se auto incremente para cada CNPJ. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que tem uma regra para o sac , tipo aaaa e sequencia , a solução passa ter um tabela incremental

Algo como

Protocolos_empresa(cnpj (pk), ultimo_protocolo_emp

 

O cuidado é estar numa "transaction" para garantir a unicidade.

Eu centralizaria o incremento em uma procedure.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.