我想为我们的软件实现患者数据库,并且在外键声明方面存在问题。我正在使用最新的SQLite DLL,使用C#。
当我尝试在代码下面运行时:
dbConnection = "Data Source=SQLiteMyDatabase.db;foreign keys=true;";
if (connections == 0)
{
cnn = new SQLiteConnection(dbConnection);
cnn.Open();
this.ExecuteNonQuery("CREATE TABLE IF NOT EXISTS patients ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name VARCHAR(100) NOT NULL;");
this.ExecuteNonQuery("CREATE TABLE IF NOT EXISTS images ( FOREIGN KEY (patientID) REFERENCES patients(id), nameRed VARCHAR(20) NOT NULL PRIMARY KEY;");
}
我收到错误:
SQLite error near "FOREIGN": syntax error
为什么会这样?
答案 0 :(得分:5)
要创建外键,必须先创建列:
CREATE TABLE IF NOT EXISTS images (
nameRed VARCHAR(20) NOT NULL PRIMARY KEY,
patientID INT,
FOREIGN KEY (patientID) REFERENCES patients(id)
);
请注意:
nameRed
),但这只是惯例。它可能排在第二位。