Estou com uma duvida se alguém puder esclarecer agradeço muito.
Criei um db com a intenção de que se fosse dado o comando para deletar uma linha e esta estivesse vinculada por algum campo o delete não seria comcluidos, mas não é o que esta acontecendo mesmp havendo a ligação o delete executa, meu sql esta da seguinte maneira:
drop table if exists CIDADES;
drop table if exists ESTADOS;
Create Table ESTADOS(
EST_ID tinyint(3) Unsigned Not Null auto_increment,
EST_SIGLA char(2) Not Null,
EST_NOME varchar(50) Not Null,
Primary Key (EST_ID)
);
INSERT INTO ESTADOS (EST_ID, EST_SIGLA, EST_NOME) VALUES
(1, 'AC', 'Acre'),
(2, 'AL', 'Alagoas'),
(3, 'AM', 'Amazonas'),
(4, 'AP', 'Amapá'),
(5, 'BA', 'Bahia'),
(6, 'CE', 'Ceará'),
(7, 'DF', 'Distrito Federal'),
(8, 'ES', 'EspÃrito Santo'),
(9, 'GO', 'Goiás'),
(10, 'MA', 'Maranhão'),
(11, 'MG', 'Minas Gerais'),
(12, 'MS', 'Mato Grosso do Sul'),
(13, 'MT', 'Mato Grosso'),
(14, 'PA', 'Pará'),
(15, 'PB', 'ParaÃba'),
(16, 'PE', 'Pernambuco'),
(17, 'PI', 'PiauÃ'),
(18, 'PR', 'Paraná'),
(19, 'RJ', 'Rio de Janeiro'),
(20, 'RN', 'Rio Grande do Norte'),
(21, 'RO', 'Rondônia'),
(22, 'RR', 'Roraima'),
(23, 'RS', 'Rio Grande do Sul'),
(24, 'SC', 'Santa Catarina'),
(25, 'SE', 'Sergipe'),
(26, 'SP', 'São Paulo'),
(27, 'TO', 'Tocantins');
Create Table CIDADES(
CID_ID mediumint(8) Unsigned Not Null auto_increment,
CID_UF tinyint (3) Unsigned Not Null,
CID_NOME varchar(100) Not Null,
Primary Key (CID_ID),
Foreign Key (CID_UF)
References ESTADOS(EST_ID)
On Delete Restrict On Update Cascade
);
INSERT INTO CIDADES (CID_ID, CID_UF, CID_NOME) VALUES
Pergunta
João Carlos C.
Saudações a todos, e um Feliz 2011 :)
Estou com uma duvida se alguém puder esclarecer agradeço muito.
Criei um db com a intenção de que se fosse dado o comando para deletar uma linha e esta estivesse vinculada por algum campo o delete não seria comcluidos, mas não é o que esta acontecendo mesmp havendo a ligação o delete executa, meu sql esta da seguinte maneira:
drop table if exists CIDADES;
drop table if exists ESTADOS;
Create Table ESTADOS(
EST_ID tinyint(3) Unsigned Not Null auto_increment,
EST_SIGLA char(2) Not Null,
EST_NOME varchar(50) Not Null,
Primary Key (EST_ID)
);
INSERT INTO ESTADOS (EST_ID, EST_SIGLA, EST_NOME) VALUES
(1, 'AC', 'Acre'),
(2, 'AL', 'Alagoas'),
(3, 'AM', 'Amazonas'),
(4, 'AP', 'Amapá'),
(5, 'BA', 'Bahia'),
(6, 'CE', 'Ceará'),
(7, 'DF', 'Distrito Federal'),
(8, 'ES', 'EspÃrito Santo'),
(9, 'GO', 'Goiás'),
(10, 'MA', 'Maranhão'),
(11, 'MG', 'Minas Gerais'),
(12, 'MS', 'Mato Grosso do Sul'),
(13, 'MT', 'Mato Grosso'),
(14, 'PA', 'Pará'),
(15, 'PB', 'ParaÃba'),
(16, 'PE', 'Pernambuco'),
(17, 'PI', 'PiauÃ'),
(18, 'PR', 'Paraná'),
(19, 'RJ', 'Rio de Janeiro'),
(20, 'RN', 'Rio Grande do Norte'),
(21, 'RO', 'Rondônia'),
(22, 'RR', 'Roraima'),
(23, 'RS', 'Rio Grande do Sul'),
(24, 'SC', 'Santa Catarina'),
(25, 'SE', 'Sergipe'),
(26, 'SP', 'São Paulo'),
(27, 'TO', 'Tocantins');
Create Table CIDADES(
CID_ID mediumint(8) Unsigned Not Null auto_increment,
CID_UF tinyint (3) Unsigned Not Null,
CID_NOME varchar(100) Not Null,
Primary Key (CID_ID),
Foreign Key (CID_UF)
References ESTADOS(EST_ID)
On Delete Restrict On Update Cascade
);
INSERT INTO CIDADES (CID_ID, CID_UF, CID_NOME) VALUES
(1, 1, 'Acrelândia'),
(2, 1, 'Assis Brasil'),
(3, 1, 'Brasiléia'),
(4, 1, 'Bujari'),
(5, 1, 'Capixaba');
DELETE FROM ESTADOS;
Estou errado em achar que o delete não era para ser executado?
Alguém pode esclarecer essa duvida, desde já agradeço;
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.