현재 테이블에 새 행을 삽입하려는 저장 프로 시저가 있습니다.
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을 사용하는 경우 SYS_GUID()
기능을 사용할 수 있습니다 . 이 질문에 대한 답을 확인하십시오. Oracle에서 GUID 생성
답변
이 시도:
SELECT NewId()
답변
질문에서 이것에 대해 묻지 않았지만 기본 키에 GUID를 사용하는 것이 항상 좋은 생각은 아니라는 점을 지적 할 가치가 있다고 생각합니다. 간단하지만 인덱스에서 GUID를 사용할 때 성능에 영향을 미칠 수 있습니다. 대신 정수 값인 ID 열 을 사용하는 것을 고려해 보셨습니까 ?
다음은 읽는 데 도움이 될 수있는 몇 가지 기사입니다.
- GUID를 기본 키로 사용하는 성능 효과 (SQL Server Magazine)
- 기본 키 : ID 대 GUID (Jeff Atwood)
- GUID를 기본 키로 사용하는 비용 (다른 두 기사에서 참조한 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")