Questão de banco de dados

14 respostas
C

Boa tarde senhores

Estrou com o seguinte problema:

Preciso criar um criar um banco de dados no mysql, onde tenho uma determinada tabela chamada funcionario, por exemplo:

CREATE TABLE funcionario (
funcionarioId INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
funcionarioLogin VARCHAR(10) NOT NULL,
funcionarioSenha VARCHAR(10) NOT NULL,
funcionarioEndereco VARCHAR(100) NOT NULL,
funcionarioFone VARCHAR(20) NOT NULL,
funcionarioEmail VARCHAR(100) NOT NULL,
funcionarioDataNascimento VARCHAR(10) NOT NULL,
funcionarioSexo CHAR(1) NOT NULL,
PRIMARY KEY(funcionarioId),

);

O problema consite no seguinte, o banco de dados esta deixando eu cadastrar dois funcionarios com o mesmo nome. Gostaria de saber como eu faço para o bd nao permitir a duplicidade do nome do funcionario.

Desde já muito obrigado

14 Respostas

Calvin

Iae!

claudemir pra resolver o problema transforme o campo que armazena o nome do funcionario em primary key.

Espero ter ajudado,
Abraços!
8)

P

Crie um indice com uma constraint no campo que possui o nome do funcionario.

No SQL Server seria assim

CREATE UNIQUE
INDEX [NmUsuario] ON [dbo].[TbUsuario] ([NmUsuario])

Fabricio_Cozer_Marti

Cria uma unique para isso. E mude os nomes das colunas, está horrível funcionarioId, funcionarioNome, funcionarioSenha … vc já está na entidade de funcionário, basta apenas colocar id, nome.

C

boa tarde fabricio.

eu nunca criei uma unique e não tenho a minima ideia como se faz isso no mysql, será que vc poderia me dar uma dica ou envia algum material que me ajude?

Valeuuuu

P

No tópico q deixei acima estou criando uma unique no SQL Server, deve ser mesma coisa no mysql.

Daniel_Quirino_Olive

pelegrini:
No tópico q deixei acima estou criando uma unique no SQL Server, deve ser mesma coisa no mysql.

Não é a mesma coisa. Dica: veja o manual do próprio MySQL.

jaboot

Calvin:
Iae!

claudemir pra resolver o problema transforme o campo que armazena o nome do funcionario em primary key.

Espero ter ajudado,
Abraços!
8)

NÃÃÃÃÃÃÃÃÃO!!!

C

Bom dia senhores.

Gostaria de agradecer a todos, pois graças a vcs consegui resolver o problema da seguimte forma:


CREATE TABLE funcionario (
funcionarioId int(10) unsigned NOT NULL auto_increment,
funcionarioNome varchar(50) NOT NULL default ‘’,
PRIMARY KEY (funcionarioId),
UNIQUE funcionario(funcionarioNome)
);

Desta forma resolveu o meu problema, ou seja, o bd nao permiti a inclusão de dois funcionario com nomes iguais. valeuuuu

Calvin

não sei o pq do espanto.
quando nem se pode repetir o nome em um sistema
… 8)

MarcioTavares
Calvin:
não sei o pq do espanto. quando nem se pode repetir o nome em um sistema ........ 8)
Repetir o nome é uma coisa. Usar o nome como PK, o que vai influenciar diretamente na modelagem e construção do banco, é outra completamente diferente.

Imagina o seguinte:

FUNCIONARIO
id INT,
nome varchar PK, <======
...

PROJETO
id INT PK,
nome varchar,
funcionario FK, <======
...

Qual seria o conteúdo das tabelas acima?

FUNCIONARIO
1, 'Marcio'
2, 'Calvin'
...

PROJETO
1, 'Gerenciador de Conteúdo', 'Marcio'
2, 'Job Scheduler', 'Marcio'
3, 'Site Web', 'Calvin'
...

Bonito, não? Imagina se fosse necessário mudar o nome de um funcionário? Olha a cagada que ia dar... por isso é que é recomendado o uso de UNIQUE pro caso de não poder repetir o nome.

Calvin

realmente eu tava errado
acabei confundindo as coisas…
valeu!

desculps :oops:

boaglio

claudemir ramos:
boa tarde fabricio.

eu nunca criei uma unique e não tenho a minima ideia como se faz isso no mysql, será que vc poderia me dar uma dica ou envia algum material que me ajude?

Valeuuuu

Manual de Referência do MySQL 4.1 (em português)

http://dev.mysql.com/doc/refman/4.1/pt/index.html

coca1na

boaglio:
claudemir ramos:
boa tarde fabricio.

eu nunca criei uma unique e não tenho a minima ideia como se faz isso no mysql, será que vc poderia me dar uma dica ou envia algum material que me ajude?

Valeuuuu

Manual de Referência do MySQL 4.1 (em português)

http://dev.mysql.com/doc/refman/4.1/pt/index.html

muito bom, obrigado

I

Calvin:
Iae!

claudemir pra resolver o problema transforme o campo que armazena o nome do funcionario em primary key.

Espero ter ajudado,
Abraços!
8)

Nãoooooooooooooooooooooooooooooooooooooooooooooooo…
Ta maluco? aonde ja se viu nome como primary key!!!..

Crie um index unico , (UNIQUE)…

Mais mesmo assim não vejo o porque… Todo funcionario naõ tem uma matricula? Ou cpf? E pelo amor de deus separa as tabelas funcionario de usuario… pra ficar até mais legivel pra quem for da manutenção.

Att.

Criado 7 de agosto de 2006
Ultima resposta 8 de ago. de 2006
Respostas 14
Participantes 10