<< Click to Display Table of Contents >> Chaves primárias e estrangeiras |
![]() ![]() ![]() |
Chave primária
CREATE TABLE tempo (codigo INTEGER PRIMARY KEY);
Mesma funcionalidade de:
CREATE TABLE tempo (codigo INTEGER NOT NULL UNIQUE);
Chave Estrangeira
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo(codigo));
Mesma funcionalidade de:
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo);
Isto porque a tabela tempo possui uma chave primária, assim a ligação da tabela situação com a tabela tempo é feita pela chave primária.
Cascade
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo ON DELETE CASCADE);
Muito cuidado com isso, pois desta forma ao ser apagado um registro da tabela tempo que tenha ligação com a tabela situação, todos os registro da tabela situação serão apagados juntos.
Bloqueando exclusões em cascade
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo ON DELETE RESTRICT);
Isso impede que sejam apagados dados da tabela tempo que tenha ligação com a tabela situação.
Outros bloqueios de exclusões em cascade
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo ON DELETE NO ACTION);
Gera um erro.
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo ON DELETE SET DEFAULT);
Muda o valor da coluna referenciada para um valor padrão definido;
CREATE TABLE situacao (codigo INTEGER PRIMARY KEY,tempo INTEGER REFERENCES tempo ON DELETE SET NULL);
Muda o valor da coluna referenciada para um null;