문제

현재 저는 평가 웹 프레임워크 ORM 레이어와 나에 발견했습니다 흥미로운 문제입니다.내가 사용되는 테이블과 함께 ID 에서 열 Java EE(EJB3/JPA)응용 프로그램과 다른 데이터베이스가 있습니다.에 SAPDB 수 있을 정의 시퀀스를 사용하여 jpa 시퀀스 발전기 주석이 그것을 처리했던 동일한 방식으로 oracle 데이터베이스를 이해합니다.When I switched to SQL Server2005 년에 갑자기를 바꾸기 전에는 정체성 주석이기 때문에 그게 어떻게 SQL 서버가 처리하는 id 생성이 분명합니다.내가 좀 실망 JPA 없는 추출 그 위에 나는 생각하지 않는 유일 한 제한 나에 걸쳐 올 것이 사용하는 다른 데이터베이스가 있습니다.

지금 나의 질문:내가 읽는 것에 web2py 예를 들어 모든 테이블을 변경해야 합를 사용하여 다음의 특징 index.그것은 지원 시퀀스 발생기 또는 id 열니까?는 방법에 대한 다른 웹 프레임워크?그들이 날 수 있도록 포트 내 응용 프로그램에 걸쳐 여러 레거시 데이터베이스?말하자면 테이블이 정의는 제외하고는 동일한 id 열고 약간의 차이는 데이터 유형에 대한 정의 문자열은(나도 기억을 변경하는 문을 만들 수 있지만 나는 무엇을 기억에 정확히 할 필요가 있었)

또한 차이를 획득 ID-과 발전기 순서 액세스할 수 있습니다 ID 생성하기 전에 commit 으로,다음의 특징에서 MySQL,afaik,당신은 할 수 없습니다.

도움이 되었습니까?

해결책

정밀한 웹 애플리케이션을 빨리 빌 모두 처리할 수 있는 방법됩니다.주어진 스키마 선언은 다음과 같다:

class Foo(Base):
    id = Column(Integer, Sequence('foo_seq', optional=True), primary_key=True)
    ...

정밀한 웹 애플리케이션을 빨리 빌드를 사용에 내장 된 자동증가 패러다임의 데이터베이스에 그것은 하나가있는 경우,그렇지 않으면 그것을 정의 시퀀스입니다.그것은 또한 관리의 가져오기의 생성된 id 지만,API 은 적어도 공통 분모를 분명히 그것을 액세스할 수없는 전에 삽입합니다.당신은 당연히 가 id 수동으로 당신이 원하는 경우.예를 들어 PostgreSQL 는 순서이지만,또한 자동증가 serial 데이터 형식의 지원을 받는 시퀀스 이용 serial 데이터 형식.오래된 버전이 자동으로 프리패치는 다음 순서에 사용할 값에 삽입을 가진 정밀한 웹 애플리케이션을 빨리 빌 0.6 시리즈와 Postgres8.3+를 사용한다 INSERT ... RETURNING ... 기능이 삽입하고 가져 오기 하나에 이동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top