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

From Igor Neyman
Subject RE: Insert data if it is not existing
Date
Msg-id DM5PR17MB15320A914836368076DCAA35DA690@DM5PR17MB1532.namprd17.prod.outlook.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  (Raymond O'Donnell <rod@iol.ie>)
List pgsql-general

 

From: tango ward [mailto:tangoward15@gmail.com]
Sent: Thursday, May 24, 2018 8:16 PM
To: Adrian Klaver <adrian.klaver@aklaver.com>
Cc: David G. Johnston <david.g.johnston@gmail.com>; pgsql-generallists.postgresql.org <pgsql-general@lists.postgresql.org>
Subject: Re: Insert data if it is not existing

 

On Thu, May 24, 2018 at 9:38 PM, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 05/23/2018 06:03 PM, tango ward wrote:

 

 

Updated my code to this:

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))

If I remove SELECT statement, I will get an error message: error : psycopg2.ProgrammingError: syntax error at or near "WHERE"
LINE 12:                         WHERE NOT EXISTS

Trying to coordinate with Lead Dev about adding Index On The Fly


I tried to figure how to make this work and could not, so I led you down a false path.





--
Adrian Klaver
adrian.klaver@aklaver.com

 

What I tried is

'''INSERT INTO my_table(name, age)

SELECT %s, %s,

WHERE NOT EXISTS(SELECT name FROM my_table WHERE name=%s)''', ('Scott', 23, 'Scott'))

 

How about:

 

'''INSERT INTO my_table(name, age)

VALUES( %s, %s)

WHERE NOT EXISTS(SELECT name FROM my_table WHERE name=%s)''', ('Scott', 23, 'Scott'))

 

Regards,

Igor Neyman

 

 

 

pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: case statement within insert
Next
From: Justin Pryzby
Date:
Subject: Re: postgres=# VACUUM FULL pg_statistic => ERROR: missing chunknumber 0 for toast value .. in pg_toast_2619