如何在SQLite中创建FOREIGN KEY?

时间:2016-07-22 12:01:17

标签: database sqlite

我已经创建了一个表,这里是代码:

CREATE TABLE "Préstamo_Biomédica" (
    ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    Entregado CHAR(100),
    Fech_Pres DATE, 
    Fech_Devu DATE,
    Nota TEXT
)

我尝试使用此代码创建一个带有FOREIGN KEY的表:

CREATE TABLE Inventario_Biomédica (
    Id_Pieza INT PRIMARY KEY,
    Nom_Pieza CHAR(100),
    Cantidad INT,
    Des_Pieza TEXT,
    Gastable BIT,
    Fech_Ent DATE,
    P_Módulo BIT,
    FOREIGN KEY (ID) REFERENCES Préstamo_Biomédica(ID_Préstamo),
)

我希望你们能帮助我......

2 个答案:

答案 0 :(得分:0)

CREATE TABLE "Préstamo_Biomédica" (
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
Entregado CHAR(100),
Fech_Pres DATE, 
Fech_Devu DATE,
Nota TEXT
)
CREATE TABLE Inventario_Biomédica (
Id_Pieza INT PRIMARY KEY,
Nom_Pieza CHAR(100),
Cantidad INT,
Des_Pieza TEXT,
Gastable BIT,
Fech_Ent DATE,
P_Módulo BIT,
FOREIGN KEY (ID_Préstamo) REFERENCES Préstamo_Biomédica(ID),
)

FOREIGN KEY之后立即提供外键列名,在REFERENCES之后提供父键表主键列

答案 1 :(得分:0)

您应该只在标识符中使用ASCII字符。如果没有,你必须引用它们。

要获取autoincrementing ID,您必须使用INTEGER,而不是INT。

FOREIGN KEY子句引用已经必须存在于表的列列表中的列。 并且父级的表/列名称位于REFERENCE之后:

CREATE TABLE "Inventario_Biomédica" (
    Id_Pieza INTEGER PRIMARY KEY,
    Nom_Pieza CHAR(100),
    Cantidad INT,
    Des_Pieza TEXT,
    Gastable BIT,
    Fech_Ent DATE,
    "P_Módulo" BIT,
    "ID_Préstamo" INT,
    FOREIGN KEY ("ID_Préstamo") REFERENCES "Préstamo_Biomédica"(ID),
);
相关问题