2012-06-21 2 views
1
PostgreSQL의

에서 한 번에 실행 (pgadmin에서 모든 문을 선택하고이 사진과 같이 버튼을 "실행"버튼을 클릭) 이전 명령.이 적용되기 전에 마지막 명령문이 완료 될 때까지 대기하십시오. 이러한 문이 실행될 때 SELECT * FROM tablename1을 실행하면 "관계가 없습니다"오류가 발생합니다.곱하기 문, PostgreSQL의에서

명령문을 실행 한 후에는 명령문을 적용 할 수있는 방법이 있습니까? 주 : 모든 CREATE 문은 단독으로 실행되는 경우 매우 짧은 시간이 필요합니다. SELECT.은 오랜 시간이 필요합니다.

+0

«마지막 SELECT 문을 실행하는 데 시간이 오래 걸리면 이전 CREATE 작업으로 인해 테이블이 성공적으로 만들어지지 않습니다.»- 이에 대한 증거가 있습니까? 그리고«한 번에 _ 순차적으로»의미하는 것은 - 평행하거나 순서대로입니다. – vyegorov

+0

@vyegorov 모호한 점에 대해 유감스럽게 생각합니다. – cheng

답변

3

나는 pgadmin에서 일련의 명령문을 선택하고 "실행"을 누르면 모두가 하나의 transaction에서 실행된다고 가정합니다. 즉, 트랜잭션 결과가 커밋 될 때까지 다른 동시 세션에서 볼 수 없거나 트랜잭션이 실패 할 경우 전혀 표시되지 않습니다.

CREATE TABLE 뒤에 또는 마지막 것 후 COMMIT;을 명시 적으로 추가해보십시오.

transaction isolation을 읽어 볼 수도 있습니다.