Re: Insert data if it is not existing - Mailing list pgsql-general

From David G. Johnston
Subject Re: Insert data if it is not existing
Date
Msg-id CAKFQuwZ1AsufoP62r1cF6sQGg5hu1USqvjdeata-NXU9Rr=NKQ@mail.gmail.com
Whole thread Raw
In response to Re: Insert data if it is not existing  (tango ward <tangoward15@gmail.com>)
Responses Re: Insert data if it is not existing  (tango ward <tangoward15@gmail.com>)
List pgsql-general
On Wednesday, May 23, 2018, tango ward <tangoward15@gmail.com> wrote:


curr.pgsql.execute('''
INSERT INTO my_table(name, age)
SELECT %s, %s
WHERE NOT EXISTS(SELECT name FROM my_table WHERE name= name)
''', ('Scott', 23))

So, WHERE name = name is ALWAYS true and so as long as there is at least one record in my_table the exists returns true, and the not inverts it to false and the main select returns zero rows.  You have successfully inserted a record that doesn't exist (i.e., you've inserted nothing just like you observe).

David J.

pgsql-general by date:

Previous
From: tango ward
Date:
Subject: Re: Insert data if it is not existing
Next
From: tango ward
Date:
Subject: Re: Insert data if it is not existing