Как добавить вторую таблицу с помощью sqlite после получения ошибки sqlite - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь создать базу данных для связи с игрой, которую я делаю, но продолжаю получать ошибку: sqlite3.OperationalError: near "/": синтаксическая ошибка. База данных отлично работает с первой таблицей, но когда я добавлю вторую таблицу, она не запустится и получит эту ошибку. Есть идеи, как решить эту проблему?

Вот как я делаю базу:

class CreateDB:
    def __init__(self):
        self.conn = sqlite3.connect("TRON.db")
        self.c = self.conn.cursor()

    def createTables(self, Tables):
        for tableName, field in Tables.items():
            self.c.execute('CREATE TABLE IF NOT EXISTS ' + tableName + ' (' + field + ')')
            self.conn.commit()

def main():
    """main function"""

    db = CreateDB()
    Tables = {"AccountDetails": '''PlayerID integer,
                                Username text,
                                Password text,
                                primary key (PlayerID)''',
              "Player": '''PlayerID integer,
              Username text,
              TotalWins integer,
              TotalLosess integer,
              TotalGames integer,
              TotalPoints integer,
              Win/lose_Ratio real,
              primary key (PlayerID)'''}

    db.createTables(Tables)

main()

1 Ответ

1 голос
/ 03 апреля 2020

Проблема в поле Win/lose_Ratio. Поскольку он содержит /, который может представлять оператор, он должен быть заключен в кавычки для использования в имени поля:

Tables = {"AccountDetails": '''PlayerID integer,
                            ...
                            primary key (PlayerID)''',
          "Player": '''PlayerID integer,
          ...
          TotalPoints integer,
          "Win/lose_Ratio" real,
          primary key (PlayerID)'''}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...