【问题标题】:Foreign keys not working - sqlite3.OperationalError: unknown column "user_id" in foreign key definition外键不起作用 - sqlite3.OperationalError:外键定义中的未知列“user_id”
【发布时间】:2021-01-28 13:03:50
【问题描述】:

sqlite3.OperationalError:外键定义中的未知列“user_id”

    # create details table
    details_table = """CREATE TABLE IF NOT EXISTS
    details(
    user_id INTEGER PRIMARY KEY,
    first_name TEXT,
    surname TEXT,
    role TEXT,
    make TEXT,
    model TEXT,
    colour TEXT,
    reg TEXT)"""

    cursor.execute(details_table)

    # create booking table
    booking_table = """CREATE TABLE IF NOT EXISTS
    booking(
    booking_id INTEGER PRIMARY KEY,
    FOREIGN KEY (user_id) REFERENCES details(user_id),
    start_date TEXT,
    expiry_date TEXT)"""
    
    cursor.execute(booking_table)

任何帮助都非常感谢:)

【问题讨论】:

    标签: python sql database sqlite key


    【解决方案1】:

    需要先声明列,然后定义外键约束:

    CREATE TABLE IF NOT EXISTS booking (
        booking_id INTEGER PRIMARY KEY,
        user_id INTEGER,
    ----^ your code is missing this declaration
        start_date TEXT,
        expiry_date TEXT,
        FOREIGN KEY (user_id) REFERENCES details(user_id)
    )
    

    【讨论】:

    • 传奇 - tysm!!
    猜你喜欢
    • 1970-01-01
    • 2019-10-24
    • 2022-12-22
    • 2019-07-15
    • 2011-03-18
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多