我想为我们的软件实现患者数据库,并且在外键声明方面存在问题.我使用最新的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;");
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
SQLite error near "FOREIGN": syntax error
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
要创建外键,必须先创建列:
CREATE TABLE IF NOT EXISTS images (
nameRed VARCHAR(20) NOT NULL PRIMARY KEY,
patientID INT,
FOREIGN KEY (patientID) REFERENCES patients(id)
);
Run Code Online (Sandbox Code Playgroud)
请注意:
nameRed在创建的列列表中首先移动了主键列(),但这只是约定.它可能排在第二位.| 归档时间: |
|
| 查看次数: |
4264 次 |
| 最近记录: |