very basic question

From: Dennis Gearon <gearond(at)cvc(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: very basic question
Date: 2003-01-31 18:46:38
Message-ID: LHNIMJEAIGMIBJH2ZPNOL733YLI72JI.3e3ac48e@cal-lab
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

If I have the following two tables, (very much shortened for your convenience):

CREATE TABLE Gens(
gen_id serial NOT NULL CONSTRAINT PK_Gens1 PRIMARY KEY,
gen varchar(16) DEFAULT 'none' NOT NULL, --
CONSTRAINT UC_Gens1 UNIQUE(gen));
COMMENT ON COLUMN Gens.gen_id IS 'integer surr primary key';
COMMENT ON COLUMN Gens.gen IS 'examples are JR, SR, I, III, etc';

CREATE TABLE Usrs(
usr_id serial NOT NULL CONSTRAINT PK_Usrs1 PRIMARY KEY,
login varchar(32) NOT NULL,
gen_id int4 NOT NULL,
CONSTRAINT FK_A_Usr_Has_A_Generation_2 FOREIGN KEY (gen_id) REFERENCES Gens (gen_id),
CONSTRAINT UC_Usrs1 UNIQUE(login));
COMMENT ON COLUMN Usrs.usr_id IS 'integer surr primary key';

How do I insert values into Usrs that use the values of Gens.gen_id for referential integrity,
but by referencing the Gen.gen field?

Say I wanted to insert (in one statement):
'fancy_login_name' for Usrs.login
*and*
the Gen.gen_id for 'JR' in Usrs.gen_id
*assuming*
that 'JR' exists in Gen.gen.

Thank you very much. In MySQL I would have used PHP to find the Gen.gen_id and then inserted
that, (whether that was the right way, I don't know)

OK, I'm a newbie to USING databases, I'm fair at designing them, I think.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Arjen van der Meijden 2003-01-31 18:55:15 Re: very basic question
Previous Message Peter Childs 2003-01-31 18:17:55 History