반응형
저장 프로시저에서 새 GUID를 생성하는 방법
현재 테이블에 새 행을 삽입하는 저장 프로시저가 있습니다.
insert into cars
(id, Make, Model)
values('A new Guid', "Ford", "Mustang")
따라서 기본 키 'id'는 GUID입니다.C# 코드에서 새로운 GUID를 작성하는 방법은 알고 있지만 저장 프로시저에서는 프라이머리 키 값에 대한 새로운 GUID를 생성하는 방법을 알 수 없습니다.
SQL Server에서는 NEWID 함수를 사용할 수 있습니다.당신은 C#을 사용하고 있기 때문에 SQL Server를 사용하고 있다고 생각합니다.다른 데이터베이스 시스템도 비슷한 기능을 가지고 있을 거예요.
select NEWID()
Oracle을 사용하는 경우 이 기능을 사용할 수 있습니다.다음 질문에 대한 답변을 확인하십시오.Oracle에서 GUID 생성
이것을 시험해 보세요.
SELECT NewId()
질문에서는 질문하지 않았습니다만, 프라이머리 키에 GUID를 사용하는 것이 항상 좋은 것은 아니라고 생각합니다.간단하지만 인덱스에서 GUID를 사용하면 성능에 영향을 줄 수 있습니다.대신 정수 값인 Identity 열을 사용하는 것을 고려해 본 적이 있습니까?
여기 읽기에 도움이 될 만한 기사 몇 개가 있다.
- GUID를 프라이머리 키(SQL Server Magazine)로 사용하는 퍼포먼스에 미치는 영향
- 기본 키: ID 대 GUID(Jeff Atwood)
- 프라이머리 키로서의 GUID 비용(다른 2개의 기사에서 참조된 Jimmy Nelson의 기사)
MySQL에서는 UUID()이므로 쿼리는 다음과 같습니다.
insert into cars
(id, Make, Model)
values(UUID(), "Ford", "Mustang")
UUID를 재사용하는 경우는, 다음과 같이 실행할 수 있습니다.
set @id=UUID();
insert into cars
(id, Make, Model)
values(@id, "Ford", "Mustang");
select @id;
질문 형식(수업자를 찾아보세요!)
insert into cars
(id, Make, Model)
values(NEWID(), "Ford", "Mustang")
언급URL : https://stackoverflow.com/questions/3938113/how-to-generate-a-new-guid-in-stored-procedure
반응형
'programing' 카테고리의 다른 글
목록에 문자열이 포함된 요소가 포함되어 있는지 확인하고 해당 요소를 가져옵니다. (0) | 2023.04.21 |
---|---|
UITable View - 맨 위로 스크롤 (0) | 2023.04.21 |
몬테카를로 시뮬레이션에서는 Excel의 RAND() 함수가 얼마나 좋습니까? (0) | 2023.04.16 |
코드 뒤의 이미지 소스 변경(Wpf) (0) | 2023.04.16 |
dlls를 wpf를 사용하여 단일 .exe로 Marge하다 (0) | 2023.04.16 |