반응형
2 개의 열을 기반으로 SQL 고유 제약 조건을 생성하려면 어떻게해야합니까?
다음과 같은 테이블이 있습니다.
|UserId | ContactID | ContactName
---------------------------------------
| 12456 | Ax759 | Joe Smith
| 12456 | Ax760 | Mary Smith
| 12458 | Ax739 | Carl Lewis
| 12460 | Ax759 | Chuck Norris
| 12460 | Bx759 | Bruce Lee
사용자가 중복 된 연락처 ID를 가질 수 없도록이 테이블에 제약 조건을 추가해야합니다. 사용자는 다양한 외부 시스템에서 데이터를 가져 오므로 ContactId는 전체적으로 고유하지 않지만 사용자별로 고유합니다.
단일 열을 기반으로 고유 및 Null이 아닌 제약 조건을 만드는 방법을 알고 있지만 두 열에 대해 고유 제약 조건을 만들려면 어떻게해야합니까?
이것을 시도 할 수 있습니다.
CREATE UNIQUE CLUSTERED INDEX index_name ON TABLE (col1,col2)
or
CREATE UNIQUE NONCLUSTERED INDEX index_name ON TABLE (col1,col2)
또는
ALTER TABLE [dbo].[TABLE] ADD CONSTRAINT
UNIQUE_Table UNIQUE CLUSTERED
(
col1,
col2
) ON [PRIMARY]
필드에 고유 한 제약 조건을 추가 할 수 있습니다.
ALTER TABLE YourTable
ADD CONSTRAINT UQ_UserId_ContactID UNIQUE(UserId, ContactID)
시도 할 수 있습니다 ALTER TABLE [TABLE_NAME] ADD UNIQUE (column1,column2,column3 ...columnN)
.
이것이 응원에 도움이되기를 바랍니다.
다음은 고유 한 INDEX가 아닌 고유 한 CONSTRAINT를 만드는 구문입니다.
ALTER TABLE publishers
ADD CONSTRAINT uqc_pub_name
UNIQUE (pub_name)
열의 고유성을 확인하기 위해 사용하는 방법에 따라 미묘한 차이가 있다는 점에 유의하는 것이 중요합니다.
이에 대한 흥미로운 연습은 다음 MSDN 참조를 참조하십시오.
http://msdn.microsoft.com/en-us/library/aa224827(SQL.80).aspx
CREATE TABLE [LineItems](
[ID] [int] IDENTITY(1,1) NOT NULL,
[OrderID] [int] NOT NULL,
[LineItemNumber] [int] NOT NULL,
CONSTRAINT [PK_LineItems] PRIMARY KEY CLUSTERED
(
[ID] ASC
),
CONSTRAINT [UC_LineItems] UNIQUE NONCLUSTERED
(
[OrderID] ASC,
[LineItemNumber] ASC
)
)
반응형
'programing tip' 카테고리의 다른 글
Angular의 canLoad와 canActivate의 차이점은 무엇입니까? (0) | 2020.12.30 |
---|---|
"하향 funargs"는 무엇입니까? (0) | 2020.12.30 |
Threaded Django 작업이 트랜잭션 또는 db 연결을 자동으로 처리하지 않습니까? (0) | 2020.12.30 |
이 응답에 대해 getOutputStream ()이 이미 호출되었습니다. (0) | 2020.12.30 |
문자열에 점이있을 때 "is"키워드가 다른 동작을하는 이유는 무엇입니까? (0) | 2020.12.30 |