我想将多个值插入一行,但我想确保该行是唯一的,即没有重复的行。
我不确定如何做到这一点(如果只有一个值来检查即很容易,如下所示:SQL Server - 如何插入记录并确保它是唯一的)。
这是我的代码,但它不允许我插入唯一的行,因为它测试单列和多列组合。
CREATE TABLE myCities (
UserID int null,
CityID int null
)
DECLARE @UserID int, @CityID int
SET @UserID = 1
SET @CityID = 1
INSERT INTO myCities (UserID,CityID)
SELECT @UserID,@CityID
WHERE
@UserID NOT IN ( SELECT UserID FROM myCities WHERE UserID = @UserID )
AND
@CityID NOT IN ( SELECT CityID FROM myCities WHERE CityID = @CityID )
Run Code Online (Sandbox Code Playgroud)
唯一可靠的方法是将支票放入数据库中。在这种情况下,在表上创建一个唯一键,该键也将成为其主键,以便
-- syntax for MS/Sybase at least is
ALTER TABLE myCities
ADD CONSTRAINT uc_myCities UNIQUE (UserID,CityID)
Run Code Online (Sandbox Code Playgroud)
然后,当您插入重复项时,您将收到错误,并且您的代码必须处理它。
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |