Não deleta dados de um campo (MySQL)

1 resposta
adriano_kahn

Oi pessoal
Sou iniciante em SQL e meu professor passou um exercicio onde cheguei as seguntes tabelas

CREATE TABLE Cidade
(
	CodCidade	INTEGER NOT NULL,	
	Nome		VARCHAR(100) NOT NULL,
	UF		CHAR(2),
	CONSTRAINT pkCidade PRIMARY KEY (CodCidade)
);



CREATE TABLE Cliente
(
	CodCliente	INTEGER NOT NULL,	
	Nome		VARCHAR(100) NOT NULL,
	Email		VARCHAR(250),
	CodCidade	INTEGER NOT NULL,
	CONSTRAINT pkCliente PRIMARY KEY (CodCliente),
	CONSTRAINT fkClienteCidade FOREIGN KEY (CodCidade) REFERENCES Cidade(CodCidade)
);

CREATE TABLE Fornecedor
(
	CodFornecedor	INTEGER NOT NULL,	
	Nome		VARCHAR(100) NOT NULL,
	Email		VARCHAR(250),
	CodCidade	INTEGER NOT NULL,
	CONSTRAINT pkFornecedor PRIMARY KEY (CodFornecedor),
	CONSTRAINT fkFornecedorCidade FOREIGN KEY (CodCidade) REFERENCES Cidade(CodCidade)
);

… e essas tabelas estao preenchidas, mas 1 dos exercícios pedidos é o seguinte: “Exclua todas as cidades do estado de SP”.
ae insiro o seguinte código SQL

DELETE FROM Cidade
WHERE UF = ‘SP’;

então acontece o seguinte erro: ERROR 1451 - Que pede para remover aos relacionamentos criados pelas FOREIGN KEYS… E no inicio do exercício eu consegui deletar e criar os relacionamentos a partir do seguinte código:

ALTER TABLE Cliente
DROP FOREIGN KEY fkClienteCidade;

ALTER TABLE Fornecedor
DROP FOREIGN KEY fkFornecedorCidade;

depois disso aparece ERROR 1025 dizendo que tem error on rename of…

e esse erro só aparece depois de serem digitados os dados no campo… o “DELETE ON CASCADE” resolveria? COmo uso esse recurso caso seja a solução?
O que vcs acham que pode ser e como posso resolver meu problema?

Abraços a todos e Bons Estudo!!!

1 Resposta

G

Seguinte amigo acredito que alguma o banco não está deixando excluir por causa da integridade dos dados. Algum registro de fornecedor deve estar usando alguma cidade de São Paulo.

Espero ter ajudado.

Criado 16 de junho de 2010
Ultima resposta 16 de jun. de 2010
Respostas 1
Participantes 2