in reply to duplicate key check isn't, why not?

What is the constraint defined by 'mlg_addr_uniq_key'? Is the key in your table 'mlg_addr_id'?

It looks like you're trying to insert a row with an empty id (possibly that's what the uninitialized value warning was about), and probably you've run this same script before and successfully inserted a row with an empty id. (That an empty ID is allowed might be a separate problem.)

Try something like this (or something along those lines):

SELECT * FROM mlg_addr WHERE mlg_addr_id = ''

and see if you get any hits. If you do, that's the problem.

UPDATE: After seeing the "gruesome details", I'm way off base.

Replies are listed 'Best First'.
Re^2: duplicate key check isn't, why not?
by hesco (Deacon) on Nov 23, 2008 at 16:22 UTC
    Thanks for turning this one over for a moment.

    =# SELECT * FROM mlg_addr WHERE mlg_addr_id = ''; ERROR: invalid input syntax for integer: "" =# SELECT * FROM mlg_addr WHERE mlg_addr_id IS NULL; mlg_addr_id | address1 | address2 | city | state | zipcode5 | zipcode +4 | country -------------+----------+----------+------+-------+----------+-------- +--+--------- (0 rows)
    if( $lal && $lol ) { $life++; }