如何修复这个 python 和 SQLite3 语法错误?

问题描述 投票:0回答:1

它在 python 中不断抛出语法错误:

回溯(最近一次调用最后一次): 文件“/Users/abrahamtchoporyan/Desktop/python/Accounting/TableCreation.py”,第 31 行,位于 c.execute('''如果不存在则创建表 flow_of_Cash ( sqlite3.OperationalError:“program_ID”附近:语法错误

import sqlite3

conn = sqlite3.connect('data.db')
c = conn.cursor()

c.execute('DROP TABLE program')
c.execute('DROP TABLE balance')
c.execute('DROP TABLE in_account')
c.execute('DROP TABLE out_account')
#c.execute('DROP TABLE flow_of_Cash')

c.execute('''CREATE TABLE IF NOT EXISTS program
        (program_ID INTEGER PRIMARY KEY,
        Name TEXT NOT NULL);''')

c.execute('''CREATE TABLE IF NOT EXISTS balance
        (balance_ID INTEGER PRIMARY KEY,
        Balance_Type TEXT NOT NULL,
        Balance_Total REAL NOT NULL);''')

c.execute('''CREATE TABLE IF NOT EXISTS in_account
        (in_account_ID INTEGER PRIMARY KEY,
        Name TEXT NOT NULL,
        Total REAL NOT NULL);''')

c.execute('''CREATE TABLE IF NOT EXISTS out_account
        (out_account_ID INTEGER PRIMARY KEY,
        Name TEXT NOT NULL,
        Total REAL NOT NULL);''')

c.execute('''CREATE TABLE IF NOT EXISTS flow_of_Cash (
        flow_of_Cash_ID INTEGER PRIMARY KEY,
        amount REAL NOT NULL,
        operation_date TEXT NOT NULL,
        operation_description TEXT,

        program_ID INTEGER,
        FOREIGN KEY (program_ID) REFERENCES program (balance_ID),

        program_ID INTEGER,
        FOREIGN KEY (balance_ID) REFERENCES balance (program_ID),

        program_ID INTEGER,
        FOREIGN KEY (in_account_ID) REFERENCES in_account (in_account_ID),

        program_ID INTEGER,
        FOREIGN KEY (out_account_ID) REFERENCES out_account (program_ID),
        );''')

conn.commit()
conn.close()

有什么问题吗???

我尝试删除和添加,如删除和添加空格来修复错误

python sqlite
1个回答
0
投票

您尝试在该表中创建 PROGRAM_ID 4 次。表中的字段必须具有唯一的名称。

© www.soinside.com 2019 - 2024. All rights reserved.