简体   繁体   English

使用sqlite3 for Python时如何在SQL中创建主键和外键?

[英]How to create primary and foreign keys in SQL when using sqlite3 for Python?

I tried to create two tables, car_main, and car_info.我尝试创建两个表,car_main 和 car_info。 car_main has a primary and foreign key, car_id and model_id, respectively. car_main 有一个主键和一个外键,分别是 car_id 和 model_id。 car_info has two foreign keys, car_id and model_id. car_info 有两个外键,car_id 和 model_id。


connection = sqlite3.connect("TutorialDB.db")
crsr = connection.cursor()
sql_command = """CREATE TABLE car_main (
car_id INTEGER PRIMARY KEY,
model_id INTEGER FOREIGN KEY REFERENCES car_main(car_id),
);"""
crsr.execute(sql_command)
sql_command = """CREATE TABLE car_info (
car_id INTEGER FOREIGN KEY REFERENCES car_main(car_id),
model_id INTEGER FOREIGN KEY REFERENCES car_main(model_id),
year INTEGER,
price INTEGER,
used BOOLEAN
);"""
crsr.execute(sql_command)
connection.close()```

Your foreign key statement makes no sense because you are referencing the same table您的外键语句没有意义,因为您引用的是同一张表

model_id INTEGER FOREIGN KEY REFERENCES car_main(car_id)

probably you need可能你需要

CREATE TABLE car_info (
    model_id INTEGER PRIMARY KEY,
    year INTEGER,
    price INTEGER,
    used BOOLEAN
);

CREATE TABLE car_main (
    car_id INTEGER PRIMARY KEY,
    model_id INTEGER,
    FOREIGN KEY(model_id) REFERENCES car_info(model_id)
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM