簡體   English   中英

如何修復sqlite3.OperationalError / sql語法錯誤?

[英]How can I fix this sqlite3.OperationalError / sql syntax error?

我的sqllite數據庫無法正常工作,並且我假設有一些錯誤與SQL語法有關。

import sqlite3
conn = sqlite3.connect("SONGS.db")

conn.execute("""CREATE TABLE SONGS
         (ID INT PRIMARY KEY     NOT NULL,
         Song-Name       TEXT     NOT NULL,
         Artist       TEXT    NOT NULL,
         Released       TEXT    NOT NULL,
         Views       TEXT    NOT NULL);""")
conn.close()

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

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (1, 'Counting Stars', 'OneRepublic', 'May 31, 2013', '2,458,427,299' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (2, 'Waka Waka', 'Shakira', 'June 4, 2010', '2,052,927,789' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (3, 'I Want It That Way', 'Backstreet Boys', 'October 25, 2009', '515.894,015' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (4, 'Psycho', 'Post Malone', 'March 22, 2018', '400,195,600' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (5, 'Till I Collapse', 'Eminem', 'September 16, 2015', '335,842,184' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (6, 'These Days', 'Rudimental', 'January 25, 2018', '270,529,823' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (7, 'Juice WRLD', 'Black & White', 'October 3, 2018', '5,268,766' )");

conn.execute("INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) \
      VALUES (8, 'Shotgun', 'George Ezra', 'June 14, 2018', '18,291,200' )");


conn.commit()
conn.close()

有我的代碼,這是錯誤

第25行,在Views TEXT NOT NULL);“”“)sqlite3.OperationalError:在”-“附近:語法錯誤

,此錯誤是由於數據庫表中的一個名為View的字段引起的

我認為你不需要; 對於conn.execute語句。

因此error line 25, in Views TEXT NOT NULL

另一個建議,使用字符串替換:

insert = "INSERT INTO SONGS (ID,Song-Name,Artist,Released,Views) VALUES ({}, {}, {}, {}, {})"

當您插入時,請執行以下操作:

conn.execute(insert.format(1, 'Counting Stars', 'OneRepublic', 'May 31, 2013', '2,458,427,299'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM