Como fica a integridade do banco?

06/09/2004

0

Caros colegas, estou precisando de uma ajuda. Se possível, resolva o problema abaixo para mim.
Cícero
Muito obrigad!

Após criar o banco no MySQL e criar e popular as tabelas abaixo consegui apagar uma região com o comando SQL:
delete from tbRegiao where codRegiao=1;

Como fica a integridade do banco? O banco não deveria deixar apagar uma região só após apagar os clientes referentes aquela região? Como resolver isso?

create database dbTeste;
use dbTeste;

CREATE TABLE tbRegiao(
codRegiao INT NOT NULL AUTO_INCREMENT,
nomeRegiao VARCHAR(50) NOT NULL UNIQUE,
ordem int not null,
PRIMARY KEY(codRegiao)
);


INSERT INTO tbRegiao(
ordem, nomeRegiao)
VALUES (1,´Lago Sul´);

INSERT INTO tbRegiao(
ordem, nomeRegiao)
VALUES (2,´Lago Norte´);

INSERT INTO tbRegiao(
ordem, nomeRegiao)
VALUES (3,´Guara´);


CREATE TABLE tbCliente(
codCliente INT NOT NULL AUTO_INCREMENT,
cpf_cnpj VARCHAR(18) NOT NULL UNIQUE,
nome_RazaoSocial VARCHAR(50) NOT NULL,
codRegiao VARCHAR(50) NOT NULL,
tipoPessoa VARCHAR(5) NOT NULL,
FOREIGN KEY (codRegiao) REFERENCES tbRegiao (codRegiao),
PRIMARY KEY(codCliente)
);


INSERT INTO tbCliente(
cpf_cnpj, nome_RazaoSocial, codRegiao, tipoPessoa)
VALUES (´53.137.616/0047-58´, ´Pão de açucar´, 1, ´PJ´);


INSERT INTO tbCliente(
cpf_cnpj, nome_RazaoSocial, codRegiao, tipoPessoa)
VALUES (´44.568.952/3190-80´, ´CARREFOUR´, 3, ´PJ´);


Cic.pop

Cic.pop

Responder

Posts

06/10/2004

Erick.tedeschi

Kra, eu sou novato no MySQL, mas pelo que eu sei as tabelas que funcionam a FOREIGN KEY, são as InnoDB,... então eu acho que no final da criação da tabela vc deveria ter especificado como InnoDB:
...
...
CREATE TABLE tbCliente(
codCliente INT NOT NULL AUTO_INCREMENT,
cpf_cnpj VARCHAR(1 NOT NULL UNIQUE,
nome_RazaoSocial VARCHAR(50) NOT NULL,
codRegiao VARCHAR(50) NOT NULL,
tipoPessoa VARCHAR(5) NOT NULL,
FOREIGN KEY (codRegiao) REFERENCES tbRegiao (codRegiao),
PRIMARY KEY(codCliente)
)TYPE=InnoDB; <-- Assim

No caso não deu erro por causa de compatibilidade.
Talvez seja isso...

espero ter ajudado.....falow t+


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar