ANUP
ANUP

Reputation: 1

SQL command shows syntax error during execution

import sqlite3

conn=sqlite3.connect("oyo.db")

conn.execute("CREATE TABLE IF NOT EXIST OYO_HOTELS (NAME TEXT,ADDRESS TEXT,PRICE INT,AMENITIES TEXT,RATING TEXT)")
print("TEBLE CREATED SUCCESSFULLY")
conn.execute("INSERT INTO OYO_HOTELS(NAME,ADDRESS,PRICE,AMENITIES,RATING) VALUES ('OYO1','oyo1_street',450,'bath,kitchen','good')")

cur=conn.cursor()
cur.execute("SELECT * FROM OYO_HOTELS")
table_data=cur.fetchall()
for record in table_data:
    print(record)

error

conn.execute("CREATE TABLE IF NOT EXIST OYO_HOTELS (NAME TEXT,ADDRESS TEXT,PRICE INT,AMENITIES TEXT,RATING TEXT)")
sqlite3.OperationalError: near "EXIST": syntax error

Upvotes: 0

Views: 92

Answers (2)

Karthik Dasari
Karthik Dasari

Reputation: 36

It is the syntax error, you need to write "CREATE TABLE IF NOT EXISTS" in the place of "CREATE TABLE IF NOT EXIST".

Corrected code:

import sqlite3

conn=sqlite3.connect("oyo.db")

conn.execute("CREATE TABLE IF NOT EXISTS OYO_HOTELS (NAME TEXT,ADDRESS TEXT,PRICE INT,AMENITIES TEXT,RATING TEXT)")

print("TEBLE CREATED SUCCESSFULLY")
conn.execute("INSERT INTO OYO_HOTELS(NAME,ADDRESS,PRICE,AMENITIES,RATING) VALUES ('OYO1','oyo1_street',450,'bath,kitchen','good')")

cur=conn.cursor()

cur.execute("SELECT * FROM OYO_HOTELS")

table_data=cur.fetchall()

for record in table_data:
    print(record)

Upvotes: 0

Tomáš Šturm
Tomáš Šturm

Reputation: 509

As the error says there is a syntax error. It is EXISTS not EXIST.

conn.execute("CREATE TABLE IF NOT EXISTS OYO_HOTELS (NAME TEXT,ADDRESS TEXT,PRICE INT,AMENITIES TEXT,RATING TEXT)"

Upvotes: 1

Related Questions