Jan
13

Integridade referencial MySQL

Autor // Erick Belluci Tedeschi

Olá, estou colocando um pequeno exemplo de integridade referencial no MySQL 5.


Lembrando que para isso ser possível deve ser usado o tipo de tabela InnoDB. As tabelas do tipo MyISAM não suportam esse recurso.

CREATE TABLE carro (
    id int not null auto_increment,
    marca varchar(25) not null,
    modelo varchar(25) not null,
    ano_fab date not null,
    ano_mod date not null,
    primary key(id)
) engine=InnoDB;

CREATE TABLE carro_acessorios (
    carro_id int not null,
    descricao varchar(150) not null,
    preco decimal(10,2) not null,
    key(carro_id),
    foreign key (carro_id) references carro (id) 
        on delete cascade
) engine=InnoDB;


Nesse exemplo temos a tabela de carros e uma tabela de acessórios que esse carro possui. Se o registro do carro for apagado, os registros de acessórios também serão.

Vamos analisar a linha responsável por isso:

* foreign key (carro_id)...: Aqui está sendo definido qual é o campo da tabela que será referenciado.

* ...references carro (id)...: Aqui está sendo definido que está se referenciando ao campo 'id' da tabela carro.

* ...on delete cascade: E por fim se o campo no qual ele está fazendo referência for apagado, ele é apagado também.

Bom por enquanto é isso, conforme for eu vou colocando mais uns negócios aí! rsrs

Para maiores informações sobre integridade referencial no MySQL acesse: http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

t+

Fonte: ITATUX
Artigos Relacionados:

blog comments powered by Disqus