저는 주로 SQL-server (데이터베이스로 작업 할 때)로 작업하고 pl-sql을 배우려고합니다. Oracle 데이터베이스에서 자동 증가 Guid 기본 키를 만드는 방법이 있습니까?
sql-server의 자동 생성 Guid가 Oracle의 기본 키로 해당합니까?
저는 주로 SQL-server (데이터베이스로 작업 할 때)로 작업하고 pl-sql을 배우려고합니다. Oracle 데이터베이스에서 자동 증가 Guid 기본 키를 만드는 방법이 있습니까?
sql-server의 자동 생성 Guid가 Oracle의 기본 키로 해당합니까?
당신은 GUID를 생성하기 위해 SYS_GUID()
를 사용하고, 컬럼의 DEFAULT 값으로 사용할 수 있습니다 :
CREATE TABLE test_table (
uid_col RAW(32) DEFAULT SYS_GUID(),
some_val VARCHAR2(10)
);
편집가 : 자세한 내용은 this question에 대한 답변을 참조하십시오.
향후 문제를 해결하기 위해 char 또는 varchar2 열 데이터 형식을 원시 형식으로 만듭니다.
나는이 문제가 향후 문제를 해결하는 데 어떻게 도움이되는지에 대한 설명을 제공해야한다고 생각합니다. –
또한 사용자 또는 응용 프로그램 제공 RAW (32)가 제공되지 않았는지 확인하기 위해 트리거를 코딩해야합니다. 그렇지 않으면 키 충돌이 발생할 수 있습니다. 트리거가 비활성화 될 수 있고 직접 경로 모드의 SQL * Loader와 같은 일부 응용 프로그램은 트리거를 모두 무시할 수 있기 때문에 완벽하지는 않습니다. 나는 Peter의 해결책이 최선의 availble이 아니라고 말하지 않는다. 오라클은 실제로 시스템 생성 키를 완전히 허용하지 않습니다. –
충분하지 않습니다. 값의 고유성을 유지하기 위해 'uid_col'열에 기본 키 제약 조건을 추가해야합니다. – ThinkJet
[SQLFiddle 예제] (http://sqlfiddle.com/#!4/1c4d6/1) – ThinkJet