複数の列の一意性
solution
一意の制約またはインデックスの使用:繰り返し記録を削除した後:
またはトリガーの代わりに使用:
:<code class="language-sql">ALTER TABLE dbo.yourtablename ADD CONSTRAINT uq_yourtablename UNIQUE(column1, column2);</code>
異常を防ぎ、データベースでのユニークな試験に対処するために:
<code class="language-sql">CREATE UNIQUE INDEX uq_yourtablename ON dbo.yourtablename(column1, column2);</code>
例 問題で提供されているフィールド名を使用しましょう:
最後の挿入試行は、エラーを返して一意性を確保します。
<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>
以上がSQL テーブル内の複数の列にわたって一意性を強制するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。