Maison > base de données > tutoriel mysql > Les contraintes de vérification peuvent-elles référencer d'autres tables dans les bases de données SQL ?

Les contraintes de vérification peuvent-elles référencer d'autres tables dans les bases de données SQL ?

DDD
Libérer: 2025-01-05 03:20:43
original
788 Les gens l'ont consulté

Can Check Constraints Reference Other Tables in SQL Databases?

Les contraintes de vérification peuvent-elles faire référence à d'autres tables ?

De nombreuses bases de données prennent en charge les contraintes de vérification comme moyen de garantir l'intégrité des données. Ces contraintes vous permettent de spécifier les conditions qui doivent être remplies pour que les données soient insérées ou mises à jour dans une table.

Considérons un scénario avec deux tables : ProjectTimeSpan et SubProjectTimeSpan. Chaque tableau comprend les colonnes StartDate et EndDate. Vous souhaitez créer une contrainte de vérification dans SubProjectTimeSpan qui garantit que les valeurs StartDate et EndDate se situent dans les ProjectTimeSpan.StartDate et ProjectTimeSpan.EndDate range.

Une telle contrainte de vérification est-elle possible ?

Oui, il est possible de créer une telle contrainte à l'aide d'une fonction. Voici un exemple utilisant la syntaxe SQL Server :

alter table SubProjectTimeSpan
add constraint chk_CheckFunction
check (dbo.CheckFunction() = 1)
Copier après la connexion

Dans cet exemple, dbo.CheckFunction() est une fonction définie par l'utilisateur qui renvoie 1 si le StartDate et les valeurs EndDate dans SubProjectTimeSpan se situent dans la plage ProjectTimeSpan.StartDate et ProjectTimeSpan.EndDate. Voici un exemple d'implémentation de la fonction :

create function dbo.CheckFunction()
returns int
as
begin
    return (select 1 where exists(select 1 from ProjectTimeSpan where StartDate <= SubProjectTimeSpan.StartDate and EndDate >= SubProjectTimeSpan.EndDate))
end
Copier après la connexion

Cette fonction fait référence à la table ProjectTimeSpan pour vérifier la contrainte. En utilisant une fonction, vous pouvez créer des contraintes de vérification qui font référence à des valeurs dans d'autres tables, offrant ainsi une flexibilité dans l'application de l'intégrité des données sur plusieurs tables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal