在“ - ”附近:尝试使用python在sqlite中创建带有外键的表时出现语法错误

时间:2013-11-09 14:57:09

标签: python sqlite

我正在使用Python中的sqlite并尝试做一些教程但是当我尝试使用外键创建一个表时,我得到了“near” - “:syntax error”。

这是我的代码

import sqlite3 as lite

conn = lite.connect("hospital.db")

c = conn.cursor()
c.execute("""CREATE TABLE IF NOT EXISTS Department(did INTEGER PRIMARY KEY AUTOINCREMENT, deptName TEXT)""")
c.execute("""CREATE TABLE IF NOT EXISTS Room(rid INTEGER PRIMARY KEY AUTOINCREMENT, nbBeds INT, nbEmptyBeds INT)""")
c.execute("""CREATE TABLE IF NOT EXISTS Patient(pid INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, lastname TEXT, address TEXT, telephone TEXT, e-mail TEXT, admitttanceDate TEXT, dischargeDate TEXT, FOREIGN KEY (roomId) REFERENCES Room(rid))""")
c.execute("""CREATE TABLE IF NOT EXISTS Employee(eid INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, lastname TEXT, address TEXT, telephone TEXT, e-mail TEXT, role TEXT, employmentStart TEXT, employmentEnd TEXT, employmentDays INT, FOREIGN KEY (patientId) REFERENCES Patient(pid), FOREIGN KEY(dept_id) REFERENCES Department(did))""")

conn.close()

我的任何一张表中都没有任何“ - ”字符,所以我不明白这里有什么问题。

1 个答案:

答案 0 :(得分:2)

e-mail不是有效的列标识符。将名称放在双引号,方括号或反引号中,或删除-

"e-mail" TEXT
[e-mail] TEXT
`e-mail` TEXT
email TEXT

应该都可以。