Loid 0 Denunciar post Postado Março 9, 2009 Bom dia pessoal, é o seguinte: Estou tentando fazer um relacionamento entre as tabelas, pessoa, tipopessoa e avp. Estou tentando utilizar a chave estrangeira para permitir deltar usuarios quando o registro estiver apenas em pessoa e tipo pessoa, mas se a cahave estrangeira for referenciada em avp, o delete deve ser restrict, porém não estou conseguindo fazer isso, esta dando erro.. Alguém pode me ajudar, grato. //sql CREATE TABLE Pessoa ( IdPessoa INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, PessoaNome TEXT NULL, PRIMARY KEY(IdPessoa) ) TYPE=InnoDB; CREATE TABLE TipoPessoa ( IdTipoPessoa INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, Pessoa_IdPessoa INTEGER UNSIGNED NOT NULL, PRIMARY KEY(IdTipoPessoa), INDEX TipoPessoa_FKIndex1(Pessoa_IdPessoa), FOREIGN KEY(Pessoa_IdPessoa) REFERENCES Pessoa(IdPessoa) ON DELETE CASCADE ON UPDATE CASCADE ) TYPE=InnoDB; CREATE TABLE Avp ( NumeroAutos INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, TipoPessoa_IdTipoPessoa INTEGER UNSIGNED NOT NULL, PRIMARY KEY(NumeroAutos), INDEX Avp_FKIndex1(TipoPessoa_IdTipoPessoa), FOREIGN KEY(TipoPessoa_IdTipoPessoa) REFERENCES TipoPessoa(IdTipoPessoa) ON DELETE RESTRICT ON UPDATE RESTRICT ) TYPE=InnoDB; Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Março 12, 2009 Siga este modelo: mysql> create table tab1 (id int, primary key(id)) engine=innodb; Query OK, 0 rows affected (0.00 sec) mysql> create table tab2 (id int, primary key(id)) engine=innodb; Query OK, 0 rows affected (0.00 sec) mysql> alter table tab2 add foreign key (id) references tab1 (id) on delete no action on update no action; Query OK, 0 rows affected (0.04 sec) Records: 0 Duplicates: 0 Warnings: 0 Uma observação é, caso você omita do comando de criação de FK o ON DELETE e o ON UDATE, o padrão é NO ACTION. Até, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites