Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Loid

[Resolvido] On delete Cascade e Restric

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.