CREATE TABLE mytable ( idno int NOT NULL DEFAULT oid, ..., PRIMARY KEY (idno) );
위와 같이 하면 ㅡ_-);; 오류가 발생합니다.
그도 그럴 것이 생성되지도 않은 Object에게 oid를 Default로
사용하려고 했으니까요.
ㅡ_-); idno를 PRIMARY KEY로 쓰면서,
기본값이 oid로 하려면 어떻게 해야하나요...
Always wish be pure well...
oid 는 primary key로 지정하지 않아도 당연히 primary key 보다 우선순위가 높은 접근방법을 자랑할 것입니다.
pg_ 관련 카타로그 테이블들을 살펴보시면 oid가 어떻게 사용되는지를 살펴보실 수 있을겝니다.
하지만, 사용자 자료에서 oid 사용은 그것도 primary key로 사용하면서 다른 테이블에 그 oid를 사용한다는 것은 꽤 많은 것을 고려해야할 것입니다.
지금까지 제 경험에 의하면 사용자 자료에서 oid가 특정 테이블에 저장되고 그것이 참조 되는 경우, 얻는 것 보다 잃는 것이 더 많았습니다.
oid는 말 그대로 어디까지나 RDBMS의 Object ID로 인식되고 사용됨이 더 타당하더군요.
---
이상은 지극히 개인적인 생각일 뿐입니다.
답변 감사합니다.
다른 테이블에서 참조하며, DBMS를 바꿀 수도 있는데 DBMS에 매우 종속적인 것을 쓰기에는 살포시 에라가 많을 것 같군요. ㅡ_-);
개인적인 생각은 상기님과 동일합니다.
시스템이 사용하는 것은 시스템이 사용하도록 내버려 둬야 합니다. 시스템이 사용하는 것은 일단 프로그래밍의 코딩 자체가 system-dependent 해질 가능성이 높아지고, 나중에 system upgrade/data backup 시에도 문제가 될 소지가 높습니다.
그러므로 시스템 레벨은 시스템에서 사용하도록 하고, 사용자는 사용자레벨에서 system-independent 하게 구성을 하는 것이 가장 좋은 방법이라고 생각됩니다.