On Thu, May 24, 2018 at 9:09 AM, David G. Johnston < david.g.johns...@gmail.com> wrote:
> On Wednesday, May 23, 2018, tango ward <tangowar...@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. > Any advice on this Sir? Even adding the FROM statement in SELECT statement doesn't insert the data INSERT INTO my_table(name, age) SELECT %s, %s FROM my_table WHERE NOT EXISTS(SELECT name from my_table WHERE name = name)''', ('Scott', 23) I also need to perform the same task but on another table but the data for that is from another DB.