Re: alter table - Mailing list pgsql-novice

From Sean Davis
Subject Re: alter table
Date
Msg-id 264855a00804071428n3bf2f93cq9519271d22e39178@mail.gmail.com
Whole thread Raw
In response to Re: alter table  (Pavel SRB <srb@heckler-koch.cz>)
Responses Re: alter table  (Pavel SRB <srb@heckler-koch.cz>)
List pgsql-novice
On Mon, Apr 7, 2008 at 5:18 PM, Pavel SRB <srb@heckler-koch.cz> wrote:
>
> Sean Davis wrote:
>
> > On Mon, Apr 7, 2008 at 4:53 PM, Pavel SRB <srb@heckler-koch.cz> wrote:
> >
> >
> > > hi all
> > >
> > >  please i have one question. I made table called tab_article with
> > >
> > >  CREATE TABLE "tab_article" (
> > >   "id" serial NOT NULL PRIMARY KEY,
> > >   "flag" boolean NOT NULL,
> > >   "title" text NOT NULL,
> > >   "journal" integer NOT NULL,
> > >   "doi" varchar(255) NOT NULL,
> > >   "year" integer NOT NULL,
> > >   "volume" integer NOT NULL,
> > >   "issue" integer NOT NULL,
> > >   "pages_start" integer NOT NULL,
> > >   "pages_end" integer NOT NULL,
> > >   "printed" boolean NOT NULL,
> > >   "public" boolean NOT NULL,
> > >   "entry" boolean NOT NULL,
> > >   "filename" integer NOT NULL,
> > >   "language" integer NOT NULL,
> > >   "link" integer NOT NULL,
> > >   "info" varchar(255) NOT NULL
> > >  );
> > >
> > >  and later another table called tab_journal
> > >
> > >  CREATE TABLE "tab_journal" (
> > >   "id" serial NOT NULL PRIMARY KEY,
> > >   "flag" boolean NOT NULL,
> > >   "name" text NOT NULL,
> > >   "publisher" integer NOT NULL,
> > >   "issn_print" integer NOT NULL,
> > >   "issn_online" integer NOT NULL,
> > >   "link" integer NOT NULL,
> > >   "date_range" varchar(255) NOT NULL
> > >  );
> > >
> > >  and i needed to change column journal in tab_article to be set like
> > >  "journal_id" integer NOT NULL REFERENCES "article_journal" ("id")
> > >
> > >  and i am not able to find the right alter table command.
> > >  thank you very much
> > >
> > >
> >
> > You will want to add the NOT NULL as one statement.  Then, add the
> > foreign key constraint as a second statement.  There are examples of
> > how to do each here:
> >
> > http://www.postgresql.org/docs/8.3/static/sql-altertable.html
> >
> > Hope that helps.
> >
> > Sean
> >
> >
>  thank you for fast replay. I have read this one tutorial before i posted
> this here, but with no luck.
>
>  ALTER TABLE l_article ADD CONSTRAINT journal_id FOREIGN KEY (journal_id)
> REFERENCES l_journal (id);
>
>  this one stops my psql terminal and did not change anything. Am i missing
> the not null statement?

When you say it stops your psql terminal, you mean that the prompt
does not return immediately?  I assume that your tables already have
data in them.  If that is the case, then postgresql is probably
checking to make sure that your foreign key constraint is actually
satisfied.  If you have a good deal of data, then this may take some
time.

>  ALTER TABLE "l_article" ADD CONSTRAINT "journal_id" integer NOT NULL
> REFERENCES FOREIGN KEY ("journal_id") REFERENCES "l_journal" (id);
>
>  thank you
>  pavel
>
>
>
>  --
>  Sent via pgsql-novice mailing list (pgsql-novice@postgresql.org)
>  To make changes to your subscription:
>  http://www.postgresql.org/mailpref/pgsql-novice
>

pgsql-novice by date:

Previous
From: Pavel SRB
Date:
Subject: Re: alter table
Next
From: Justin Bailey
Date:
Subject: problems with dollar quoting