Reputation: 13
Here is the code I have:
for x in range(len(un)):
query = 'CREATE TABLE "'+un[x]+'" AS SELECT * FROM public.sample WHERE ticker = +un[x]+'
cursor.execute(query)
The error I am getting:
LINE 1: ...E "AA" AS SELECT * FROM public.sample WHERE ticker = +un[x]+
The query I want to run in PostgreSQL
CREATE TABLE "AA" AS SELECT * FROM public.sample WHERE ticker = 'AA'
Upvotes: 1
Views: 299
Reputation: 1043
You just miss a quote in the query string. Try this:
for x in range(len(un)):
query = 'CREATE TABLE "'+un[x]+'" AS SELECT * FROM public.sample WHERE ticker = \''+un[x]+'\''
cursor.execute(query)
Also consider using parameters, as this query is prone to SQL injection (meaning you could leak or loose your database):
for x in range(len(un)):
query = 'CREATE TABLE %(ticker)s AS SELECT * FROM public.sample WHERE ticker = %(ticker)s'
cursor.execute(query, {"ticker": un[x]})
Upvotes: 1