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´);
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
Curtir tópico
+ 0
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+
...
...
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
Clique aqui para fazer login e interagir na Comunidade :)