Postgresql PSQL-последовательность. Почему это не выполняется до завершения? - PullRequest
1 голос
/ 08 марта 2010

Я в psql пытаюсь создать таблицу для администратора Python. На самом деле это расширение рабочего админа, поэтому я добавляю новую таблицу и некоторые отношения. Когда я ввожу следующую последовательность, она никогда не будет выполнена до конца:

BEGIN;

   CREATE TABLE "work_projectinteractiveasset" (
     "id" serial NOT NULL PRIMARY KEY,
     "name" varchar(200) NOT NULL,
     "image" varchar(100) NOT NULL,
     "project_id" integer NOT NULL REFERENCES "work_project" ("id") DEFERRABLE INITIALLY DEFERRED
   );

    CREATE INDEX "work_projectinteractiveasset_project_id" 
        ON "work_projectinteractiveasset" ("project_id");

COMMIT;

Подсказка заканчивается на

ЗАМЕЧАНИЕ: CREATE TABLE создаст неявную последовательность "work_projectinteractiveasset_id_seq" для последовательного столбца "work_projectinteractiveasset.id"

Но он просто остается там до тех пор, пока я не выйду из него. Есть ли способ форсировать завершение?

1 Ответ

3 голосов
/ 09 марта 2010

Я не могу выдать эту ошибку. Однако это звучит так: у вас есть блокировка, которая мешает завершить работу.

 postgres=# create table work_project (id int primary key);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "work_project_pkey" for table "work_project"
CREATE TABLE
postgres=# BEGIN;
BEGIN
postgres=# 
postgres=#    CREATE TABLE "work_projectinteractiveasset" (
postgres(#      "id" serial NOT NULL PRIMARY KEY,
postgres(#      "name" varchar(200) NOT NULL,
postgres(#      "image" varchar(100) NOT NULL,
postgres(#      "project_id" integer NOT NULL REFERENCES "work_project" ("id") DEFERRABLE INITIALLY DEFERRED
postgres(#    );
NOTICE:  CREATE TABLE will create implicit sequence "work_projectinteractiveasset_id_seq" for serial column "work_projectinteractiveasset.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "work_projectinteractiveasset_pkey" for table "work_projectinteractiveasset"
CREATE TABLE
postgres=# 
postgres=#     CREATE INDEX "work_projectinteractiveasset_project_id" 
postgres-#         ON "work_projectinteractiveasset" ("project_id");
CREATE INDEX
postgres=# 
postgres=# COMMIT;
COMMIT

postgres = # выбрать версию ();

версия

PostgreSQL 8.3.8 на x86_64-pc-linux-gnu, скомпилированный GCC gcc-4.4.real (Ubuntu 4.4.1-3ubuntu3) 4.4.1 (1 ряд)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...