는 PostgreSQL을위한 몇 가지 SQL입니다 (나는 그것이 바보 같은 쿼리를 알고 내가 내려 간단한 고장 코드를 원래의 질의 삶은 것) : 여기INSERT 및/또는 WITH와 관련된 PostgreSQL 구문 오류입니다. 8.4에서 발생하지만 9.1에서는 발생하지 않습니다. 아이디어?
CREATE TABLE entity (
id SERIAL PRIMARY KEY
);
WITH new_entity
AS (INSERT INTO entity DEFAULT VALUES
RETURNING id
)
SELECT id FROM new_entity;
는 PostgreSQL의 9.1에서 실행되는 :
psql:../sandbox/test.sql:3: NOTICE: CREATE TABLE will create implicit sequence "entity_id_seq" for serial column "entity.id"
psql:../sandbox/test.sql:3: NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index "entity_pkey" for table "entity"
CREATE TABLE
id
----
1
(1 row)
을
분명히
psql:../sandbox/test.sql:3: NOTICE: CREATE TABLE will create implicit sequence "entity_id_seq" for serial column "entity.id"
psql:../sandbox/test.sql:3: NOTICE: CREATE TABLE/PRIMARY KEY will create implicit index "entity_pkey" for table "entity"
CREATE TABLE
psql:../sandbox/test.sql:9: ERROR: syntax error at or near "INSERT"
LINE 2: AS (INSERT INTO entity DEFAULT VALUES
는, 테이블 작성이 두 경우 모두 잘 간다,하지만 P에서 두 번째 쿼리를 지워 버리고 다음은
는 PostgreSQL의 8.4에서 실행되고 있지 않습니다 ostgreSQL 8.4. 이 오류 메시지에서 나는 문제점이 무엇인지 정확하게 수집 할 수 없습니다. 나는 9.1이 가지고있는 것이 무엇인지 알지 못한다. 8.4는이 구문 에러를 일으킬 수있다. 유쾌하게 google it에 단단하다. PostgreSQL 릴리스 노트의 페이지를 통해 8.4와 9.1 사이를 trawl하고, WITH … AS
또는 INSERT … RETURNING
과 관련된 것이 있으면 변경하거나 추가했음을 알기 위해 필자는 필사적으로 접근하고 있습니다. 그러나 그곳에 가기 전에 여러분 중 한 명에게 경험이 있기를 바랍니다. 그리고/또는 경건한 google-fu는 나를 여기에서 돕는다.
정말 고마워요! 나는 8.4 호환성을 위해 두 번째 구문을 두 개로 나눌 것이라고 생각한다. – Milosz