SQLite Near ORDER 中的语法错误 (sqlite3.OperationalError)

Syntax Error in SQLite Near ORDER (sqlite3.OperationalError)

我认为这是菜鸟犯的错误。我试了几个小时但找不到解决方案。

听说SQLite支持多线程访问一个文件。所以我在 Python:

中创建了第一个包含多个 table 的数据库

def create_table(page):
    con = connect('emails.db')
    cur = con.cursor()
    try:
        cur.executescript(f'''
            CREATE TABLE {page} (
                id INTEGER,
                email VARCHAR,
                password VARCHAR,
                time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                PRIMARY KEY (id)
            );
        ''')
        con.commit()
    except:
        pass
    con.close()

现在我的问题是我想做什么:

我的程序做了什么:

它没有删除“fremdgehen”的第一行,只将一行移动到“fremdgehen_used”,而是给出以下错误:

Exception in thread
Thread-1reifer6:

Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
    self.run()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "c:\Users\Administrator\Desktop\de_1\v2\sub_bot\main.py", line 92, in main
    delete_table_row(page)
  File "c:\Users\Administrator\Desktop\de_1\main_bot\data.py", line 62, in delete_table_row
    cur.execute(f'DELETE FROM {page} ORDER BY id LIMIT 1')
sqlite3.OperationalError: near "ORDER": syntax error

*这条消息三次因为三个线程都是运行

我的代码:

移动第一行 table e。 G。 fremdgehenfremdgehen_used

def move_table(page):
    # page is "fremdgehen"
    con = connect('emails.db')
    cur = con.cursor()
    cur.execute(f'INSERT INTO {page}_used SELECT * FROM {page} LIMIT 1')
    con.commit()
    con.close()

做点什么

删除第一行fremdgehen

def delete_table_row(page):
    # page is "fremdgehen"
    con = connect('emails.db')
    cur = con.cursor()
    cur.execute(f'DELETE FROM {page} ORDER BY id LIMIT 1')
    con.commit()
    con.close()

我认为删除第一行的查询是错误的。也许这样会更好:

Delete from fremdgehen where id IN (Select id from fremdgehen limit 1);

盗自: