2009-07-08 6 views
0

J'ai une table avec (col1, col2) comme une clé primaire composite. créer une table twokeytable (col1 int, col2 int, contrainte clé primaire twokeytable_pk (col1, col2));est-ce que la commande d'une clé composite est définie?

et une autre table avec des colonnes col3, col4 avec une clé étrangère composite (col3, col4) qui fait référence à la clé primaire (col1, col2).

Pour certains traitements, j'ai besoin de supprimer la clé étrangère et les contraintes primaires. Alors que la restauration des contraintes fait l'ordre des clés d'importance ?.

sont les mêmes?

create table fktwokeytable (col3 int, col4 int, contrainte fkaddfaa_fk clé étrangère (col4, col3) références twokeytable (col1, col2))

et

create table fktwokeytable (col3 int, col4 int, contrainte fkaddfaa_fk clé étrangère (col3, col4) références twokeytable (col1, col2))

Répondre

0

Cela devrait être assez simple à tester s'ils sont identiques, car s'ils sont différents, vous ne pourrez sûrement pas ajouter la contrainte sur la table . Il devrait donc être testable sur un petit ensemble de données.

Si elle a un impact sur les performances est une question différente.

De plus, quelle base de données avez-vous en tête, étant donné que différents SQL font les choses différemment.

+0

Merci pour la réponse. Mis à part, y at-il une règle de base de données qui stipule que l'ordre est important?. Je dois écrire du code pour tous les principaux systèmes de base de données. –

+0

pas sûr, j'écrivais une réponse générique, demandant plus que de répondre. –

+0

Si vous avez besoin de TOUS les systèmes de bases de données n'utilisez pas cette syntaxe. La plupart ne prennent pas en charge les clés composées de cette manière pour la validation FK. Usage général = Dénominateur le moins commun –

Questions connexes