sqlite3.OperationalError: около "FOREIGN": синтаксическая ошибка
Я сталкиваюсь с операционной ошибкой при выполнении кода в приведенных ниже строках моего кода.
c.execute("CREATE TABLE IF NOT EXISTS customerReg(cname TEXT,cgender TEXT,cphone INT UNIQUE,cusername TEXT UNIQUE,cpassword TEXT UNIQUE)")
c.execute("CREATE TABLE IF NOT EXISTS adminReg(Oname TEXT,Hname TEXT UNIQUE,totalrooms INT,tariff INT,location TEXT,aphone INT,ausername TEXT UNIQUE,apassword TEXT UNIQUE)")
c.execute("CREATE TABLE IF NOT EXISTS customerStay(cname TEXT,hostel TEXT,location TEXT,tariff INT)")
c.execute("CREATE TABLE IF NOT EXISTS Hostel(FOREIGN KEY(Hostelname) REFERENCE adminReg(Hname),FOREIGN KEY(rent) REFERENCE adminReg(tariff),FOREIGN KEY(roomsavailable) REFERENCE adminReg(totalrooms))")
Ошибка, которая отображается
c.execute("CREATE TABLE IF NOT EXISTS Hostel(FOREIGN KEY(Hostelname)
REFERENCE adminReg(Hname),FOREIGN KEY(rent) REFERENCE
adminReg(tariff),FOREIGN KEY(roomsavailable) REFERENCE
adminReg(totalrooms))") sqlite3.OperationalError: near "FOREIGN":
syntax error
Я не могу увидеть ошибку.
1 ответ
Этот оператор CREATE TABLE не определяет столбцы. (FOREIGN KEY объявляет ограничение на существующий столбец; он не определяет новый столбец.)
И ССЫЛКИ пишется неправильно.