Maison > base de données > tutoriel mysql > Comment appliquer l'unicité sur plusieurs colonnes dans une table SQL?

Comment appliquer l'unicité sur plusieurs colonnes dans une table SQL?

Barbara Streisand
Libérer: 2025-01-24 23:47:09
original
448 Les gens l'ont consulté

How to Enforce Uniqueness Across Multiple Columns in a SQL Table?

l'unicité des multiples colonnes

Instruction de question

Il y a des enregistrements répétés dans votre table.

Solution

en utilisant des contraintes ou des index uniques:

après avoir supprimé des enregistrements répétés:

ou

Utiliser au lieu du déclencheur:
<code class="language-sql">ALTER TABLE dbo.yourtablename ADD CONSTRAINT uq_yourtablename UNIQUE(column1, column2);</code>
Copier après la connexion

afin de prévenir les anomalies et de faire face à un examen unique dans la base de données:
<code class="language-sql">CREATE UNIQUE INDEX uq_yourtablename ON dbo.yourtablename(column1, column2);</code>
Copier après la connexion

Exemple Utilisons le nom du champ fourni dans le problème:

La dernière tentative d'insertion renvoie les erreurs pour garantir l'unicité.
<code class="language-sql">CREATE TRIGGER dbo.BlockDuplicatesYourTable ON dbo.YourTable INSTEAD OF INSERT AS
BEGIN
  SET NOCOUNT ON;

  IF NOT EXISTS (SELECT 1 FROM inserted AS i INNER JOIN dbo.YourTable AS t ON i.column1 = t.column1 AND i.column2 = t.column2)
  BEGIN
    INSERT dbo.YourTable(column1, column2, ...) SELECT column1, column2, ... FROM inserted;
  END
  ELSE
  BEGIN
    PRINT '未执行任何操作。'; -- 将错误信息改为更友好的提示
  END
END
GO</code>
Copier après la connexion

Cette sortie révocée maintient l'image d'origine et utilise un langage plus naturel tout en gardant la précision technique du texte d'origine.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal