l'unicité des multiples colonnes
Solution
en utilisant des contraintes ou des index uniques:après avoir supprimé des enregistrements répétés:
ouUtiliser au lieu du déclencheur:
<code class="language-sql">ALTER TABLE dbo.yourtablename ADD CONSTRAINT uq_yourtablename UNIQUE(column1, column2);</code>
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>
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>
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!