Перемещение поля данных в одной таблице в другую таблицу - PullRequest
0 голосов
/ 24 мая 2018

В настоящее время я пытаюсь добавить поле из одной таблицы в другую таблицу.

В моем примере кода у меня есть идентификатор конкурента в таблице лиц (это также первичный ключ).Но я хочу, чтобы этот идентификатор появился в другой таблице под названием «Индивидуальные события», но я застрял на том, как это сделать.Я думаю, что я сделал это внешним ключом в моей таблице отдельных событий

Любая помощь будет высоко ценится.

Пожалуйста, смотрите мой код ниже (он должен работать и работать, но без результата относительноотображение поля в таблице отдельных событий)

def create_database():
    global cursor
    global connection
    connection = sqlite3.connect("Tournament.db")
    cursor = connection.cursor()

def create_tables():
    cursor.execute("""CREATE TABLE tblIndividuals
(competitorID INTEGER,
title TEXT,
firstName TEXT,
surname TEXT,
primary key (competitorID))
""")

def menu():
    select = int (input("Please select from the following options....\n "
                   "1. Add a team or individual\n "
                   "2. Start the individual events\n "
                   "3. Start the team events\n "))
    if select == 1:
        add_entry()
    if select == 2:
        individual_events()

def add_entry():

    type_of_entry = input("Individual or team entry? ")

    competitor_numbers_used = []
    record = []

    while type_of_entry == "individual":

        global competitorID
        competitorID = random.randint(1,20)
        competitor_numbers_used.append(competitorID)

        if competitorID in competitor_numbers_used:
            competitorID = random.randint(1,20)

        title = input ("Enter your title: ")
        firstName = input("Enter your first name: ")
        surname = input("Enter surname: ")

        record.append(competitorID)
        record.append(title)
        record.append(firstName)
        record.append(surname)

        cursor.execute("INSERT INTO tblIndividuals VALUES (?,?,?,?)", record)
        record = []
        connection.commit()
        type_of_entry = input("Individual or team entry? (Type end to go back to the menu) ")
        if type_of_entry == "end":
            menu()

def individual_events():
    cursor.execute("""CREATE TABLE tblIndividualEvents
(competitorID INTEGER,
FOREIGN KEY(competitorID) REFERENCES tblIndividuals(competitorID))
"""                 

create_database()
create_tables()
menu()

connection.close

1 Ответ

0 голосов
/ 24 мая 2018

Вы не предприняли никаких действий для добавления данных во вторую таблицу.Создание второй таблицы с тем же именем поля не влияет на данные во второй таблице.

Что вы можете сделать:

  1. Когда вы вставляете значения в первую таблицу, вручную вставьте то же значение во вторую таблицу.
  2. После того, как вы вставили все значения в первую таблицу, массово вставьте все значения во вторую таблицу с помощью INSERT INTO ... (SELECT ...)
  3. Создайте триггер вставки в первой таблице, который реагирует на вставки тудавставив то же значение во вторую таблицу.

Нижняя строка, определяющая структуру второй таблицы, не приводит к добавлению каких-либо данных к ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...