Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Um restrição é semelhante a um índice, embora também possa ser usado para estabelecer uma relação com outra tabela.

Você usa a cláusula CONSTRAINT em instruções ALTER TABLE e CREATE TABLE para criar ou excluir restrições. Há dois tipos de cláusulas CONSTRAINT: uma para criar uma restrição em um único campo e outra para criar uma restrição em mais de um campo.

Observação: O mecanismo de banco de dados do Microsoft Access não dá suporte ao uso de CONSTRAINT ou a qualquer uma das instruções de linguagem de definição de dados, com bancos de dados que não são do Microsoft Access. Use os métodos DAO Create.

Sintaxe

Restrição de campo único:

Nome DA RESTRIÇÃO {CHAVE PRIMÁRIA | EXCLUSIVO | NÃO NULL |
REFERÊNCIAS foreigntable [(foreignfield1, foreignfield2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

Restrição de vários campos:

Nome
DA RESTRIÇÃO{CHAVE PRIMÁRIA (primary1[, primary2 [, ...]]) |
UNIQUE (unique1[, unique2 [, ...]]) |
NOT NULL (notnull1[, notnull2 [, ...]]) |
FOREIGN KEY [NO INDEX] (ref1[, ref2 [, ...]]) REFERÊNCIAS foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

A cláusula CONSTRAINT tem estas partes:

Parte

Descrição

nome

O nome da restrição a ser criada.

primário1, primário2

O nome do campo ou campos a serem designados como chave primária.

unique1, unique2

O nome do campo ou campos a serem designados como uma chave exclusiva.

notnull1, notnull2

O nome do campo ou campos restritos a valores não nulos.

ref1, ref2

O nome de um campo ou campos de chave estrangeira que se referem a campos em outra tabela.

foreigntable

O nome do tabela estrangeira que contém o campo ou os campos especificados por foreignfield.

foreignfield1, foreignfield2

O nome do campo ou campos em foreigntable especificado por ref1, ref2. Você pode omitir essa cláusula se o campo referenciado for a chave primária da foreigntable.


Comentários

Você usa a sintaxe para uma restrição de campo único na cláusula de definição de campo de uma instrução ALTER TABLE ou CREATE TABLE imediatamente seguindo a especificação do tipo de dados do campo.

Você usa a sintaxe para uma restrição de vários campos sempre que usa o palavra reservada CONSTRAINT fora de uma cláusula de definição de campo em uma instrução ALTER TABLE ou CREATE TABLE.

Usando CONSTRAINT, você pode designar um campo como um dos seguintes tipos de restrições:

  • Você pode usar a palavra exclusiva reservada para designar um campo como uma chave exclusiva. Isso significa que nenhum dos dois registros na tabela pode ter o mesmo valor neste campo. Você pode restringir qualquer campo ou lista de campos como exclusivos. Se uma restrição de vários campos for designada como uma chave exclusiva, os valores combinados de todos os campos no índice devem ser exclusivos, mesmo que dois ou mais registros tenham o mesmo valor em apenas um dos campos.

  • Você pode usar as palavras reservadas CHAVE PRIMÁRIA para designar um campo ou um conjunto de campos em uma tabela como uma chave primária. Todos os valores na chave primária devem ser exclusivos e não nulos, e pode haver apenas uma chave primária para uma tabela.

    Observação: Não defina uma restrição PRIMARY KEY em uma tabela que já tenha uma chave primária; se você fizer isso, ocorrerá um erro.

  • Você pode usar as palavras reservadas FOREIGN KEY para designar um campo como uma chave estrangeira. Se a chave primária da tabela estrangeira consiste em mais de um campo, você deve usar uma definição de restrição de vários campos, listando todos os campos de referência, o nome da tabela estrangeira e os nomes dos campos referenciados na tabela estrangeira na mesma ordem em que os campos de referência estão listados. Se o campo ou campos referenciados forem a chave primária da tabela estrangeira, você não precisará especificar os campos referenciados. Por padrão, o mecanismo de banco de dados se comporta como se a chave primária da tabela estrangeira fosse os campos referenciados.

    Restrições de chave estrangeira definem ações específicas a serem executadas quando um valor de chave primária correspondente é alterado:

  • Você pode especificar ações a serem executadas na tabela estrangeira com base em uma ação correspondente executada em uma chave primária na tabela na qual o CONSTRAINT é definido. Por exemplo, considere a seguinte definição para a tabela Clientes:

CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

Considere a seguinte definição dos Pedidos de tabela, que define uma relação de chave estrangeira referenciando a chave primária da tabela Clientes:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE CASCADE ON DELETE CASCADE

Tanto uma CASCADE ON UPDATE quanto uma cláusula CASCADE ON DELETE são definidas na chave estrangeira. A cláusula CASCADE ON UPDATE significa que, se o identificador de um cliente (CustId) for atualizado na tabela Cliente, a atualização será em cascata por meio da tabela Pedidos. Cada pedido que contém um valor de identificador de cliente correspondente será atualizado automaticamente com o novo valor. A cláusula ON DELETE CASCADE significa que, se um cliente for excluído da tabela Cliente, todas as linhas na tabela Pedidos que contêm o mesmo valor de identificador de cliente também serão excluídas.

Considere a seguinte definição diferente das Ordens de tabela, usando a ação SET NULL em vez da ação CASCADE:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL

A cláusula NULL DO CONJUNTO DE ATUALIZAÇÕES significa que, se o identificador de um cliente (CustId) for atualizado na tabela Cliente, os valores de chave estrangeira correspondentes na tabela Pedidos serão automaticamente definidos como NULL. Da mesma forma, a cláusula NULL ON DELETE SET significa que, se um cliente for excluído da tabela Cliente, todas as chaves estrangeiras correspondentes na tabela Pedidos serão automaticamente definidas como NULL.

Para impedir a criação automática de índices para chaves estrangeiras, o modificador NO INDEX pode ser usado. Essa forma de definição de chave estrangeira deve ser usada apenas nos casos em que os valores de índice resultantes seriam frequentemente duplicados. Quando os valores em um índice de chave estrangeira são frequentemente duplicados, o uso de um índice pode ser menos eficiente do que simplesmente executar uma verificação de tabela. Manter esse tipo de índice, com linhas inseridas e excluídas da tabela, degrada o desempenho e não fornece nenhum benefício.



Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×