en SQLite cómo implementar una relación de muchos a muchos

Estoy haciendo una database SQLite que tiene una relación de muchos a muchos he dividido esto en dos relaciones de uno a muchos con el siguiente código

SQLiteManager: CREATE TABLE "main"."LESSONS" ( "LESSONID" INTEGER PRIMARY KEY NOT NULL , "MODULEID" INTEGER, FOREIGN KEY(MODULEID) REFERENCES MODULES (MODULEID), "STUDENTID" INTEGER, FOREIGN KEY (STUDENITD) REFERENCES STUDENTS (STUDENTID) ) 

Error:

 [near ""STUDENTID"": syntax error ] Exception Name: NS_ERROR_FAILURE Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement] 

¿Alguien sabe cómo puedo solucionar este error?

Mira la documentation ; le mostrará que si especifica una key externa en la definición del campo, no debe usar la palabra key FOREIGN KEY . Además, usaste demasiadas comas, como lo señaló CL. , e incluso al especificar la restricción por separado, el nombre de la key externa no debe estar entre paréntesis.

Esta statement hace lo que quieres:

 CREATE TABLE "LESSONS" ( "LESSONID" INTEGER PRIMARY KEY NOT NULL, "MODULEID" INTEGER REFERENCES MODULES(MODULEID), "STUDENTID" INTEGER REFERENCES STUDENTS(STUDENTID) ); 

También tenga en count que, si MODULEID es la key principal de la tabla MODULES, entonces no tiene que especificarlo, per se; SQLite no lo requiere. Dicho esto, prefiero especificarlo así, ya que otros motores SQL lo esperan.

Tienes demasiadas comas. Los attributes de columna no están separados por comas; Úselos solo entre las columnas de la tabla:

 CREATE TABLE "LESSONS" ( "LESSONID" INTEGER PRIMARY KEY NOT NULL, "MODULEID" INTEGER FOREIGN KEY (MODULEID) REFERENCES MODULES(MODULEID), "STUDENTID" INTEGER FOREIGN KEY (STUDENTID) REFERENCES STUDENTS(STUDENTID) ) 

tiene un error tipográfico al declarar la foreign key

 FOREIGN KEY (STUDENITD) 

debiera ser

 FOREIGN KEY (STUDENTID)