>
>sheila bel wrote:
> >
> > but I'm having a problem when I want to insert data into
> > a table that has type serial in it.
> >
> > agency(id serial, agency_name text, street_addr text, ...)
> >
> > $result = pg_Exec($conn, "INSERT INTO agency VALUES
> > ('nextval(\'agency_agencyid_seq\'),','$agency_name','$street_addr')");
> >
> > Warning: PostgresSQL query failed: ERROR: Cannot insert a duplicate key
>into
> > a unique index in
> > /home/httpd/html/tests/T2.php3 on line 57
>
>This from a non-PHP user:
>
>1) If you have triggers firing on the server, and one of *those*
>tries to insert a duplicate key, it can appear from the client side as
>if you'd inserted a dup into agency.
>
>2) The name of your sequence looks fishy. I thought it would've been
>named 'agency_id_seq' if it came from a serial...
>
*****> Sorry I didn't type the table correctly, it is :
agency(agency_id serial,....) thats why i get the fishy sequence name.
>% psql -d emsdb -c "create table agency(id serial, agency_name text,
>street_addr text)"
>NOTICE: CREATE TABLE will create implicit sequence 'agency_id_seq'
>for SERIAL column 'agency.id'
>NOTICE: CREATE TABLE/UNIQUE will create implicit index
>'agency_id_key' for table 'agency'
>CREATE
>
>3) The nicest thing about serials is that you really don't need to
>specify the serial column at all if you don't need the value
>immediately in the client as a foreign key...
>
>% psql -d emsdb -c "insert into agency (agency_name, street_addr)
>values ('MyAgency1', 'MyAddr1')"
>INSERT 3878944 1
>
>% psql -d emsdb -c "insert into agency (agency_name, street_addr)
>values ('MyAgency2', 'MyAddr2')"
>INSERT 3878976 1
>
>% psql -d emsdb -c "select * from agency"
>id|agency_name|street_addr
>--+-----------+-----------
> 1|MyAgency1 |MyAddr1
> 2|MyAgency2 |MyAddr2
>(2 rows)
*****> Well, I did try doing this but for some reason its expecting
a value for the agency_id and I get an error message. Maybe it has
something to do with PHP ?
by the way what does the -d emsdb -c mean ?
I just connect to my database using >psql mydatabase
then I do inserts or updates. If I want to connect to another
database I do >-c anotherdb.
-Sheila
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com