2017-07-29 1 views
1

Supposons que nous avons les deux tableaux suivantscomment créer la clé de référence étrangère pour la clé primaire de la composition

Create table Bank (
    Bank_ID Numeric Not Null, 
    Bank_Card Numeric Not Null, 
    Primary Key(Bank_ID, Bank_Card) 
) 

Create table Customer (
    Customer_ID Numeric Not Null, 
    Name varchar(30) Not Null, 
    Primary key(Customer_ID) 
) 

Où Customer_ID est généré par concaténer Bank_ID et Bank_Card. Comment puis-je définir une clé étrangère Customer_ID pour faire référence Bank_ID et Bank_Card

+1

Réponse courte: Vous ne pouvez pas. Une réponse longue serait de repenser les tables ou d'ajouter une colonne générée. –

Répondre

0

Ce que vous voulez est une contrainte, mais ce n'est pas une contrainte FK (clé étrangère) (une contrainte FK indique que les valeurs d'une liste de colonnes apparaissent ailleurs comme PK/UNIQUE.) Pour l'appliquer de façon déclarative, vous pouvez ajouter une colonne redondante générée (calculée/calculée) Customer_ID à Bank et un FK à Customer. Pour l'appliquer sans ajouter de colonnes redondantes, vous avez besoin de déclencheurs. Mais smart keys are a bad idea.