La sintassi mi pare errata, dato che la Primary Key deve essere unica, nel senso che questa è un indice particolare ma, al contrario dei normali indici, se c'è ce nè solo una.
Quando si tratta di indici (o ciavi primarie) su più campi, è buona norma usare per la loro creazione la specifica sintassi, che è normalmente a parte della definizione dei singoli campi; un esempio, ma dipende dal motore db, potrebbe essere:
CONSTRAINT table_pk(campo1, campo2,...) AS PRIMARY KEY
La dichiarazione fatta sul singolo campo, potrebbe essere valida se questo è l'unico campo che compone la chiave primaria; in caso contrario ci sarebbero problemi anche per capire qual'è l'ordine dei campi della chiave (che potrebbe anche non corrispondere all'ordine con cui sono definiti i campi nella creazione della tabella.
Poi, lo scopo principale delle chiavi primarie è quello di definire una regola per non incorrere in duplicazioni di record.
Nel caso occorrano diversi ordinamenti dei dati, allora si possono usare i normali indici.
Purtroppo, e anche questo problema me lo conferma, SQLite non esegue controlli approfonditi sui comandi sql, permettendo di salvare informazioni incongruenti. La cosa bella è che poi se ne accorge in fase d'uso, emettendo un messaggio di quel tipo... ma cavolo, me l'hai permesso, ora non lo capisci?
Come avevo già scritto in altre discussioni, anche il capire che tipo di campo vuoi costruire in una tabella è demandato ad una logica, a dir poco, grossolana; come descritto nella doc ufficiale di SQLite, il motore gestisce solo 4 (quattro) tipi di dato (nella versione 3, mentre nella 2 era solo 1... stringa...), e la ticologia del campo viene definita andando a vedere se all'interno del nometipo ci sono stringhe del tipo: *CHAR*, *INT*, *DATE*, *BLOB*, ecc. Anche le dimensioni sono predefinite per tipo, e quelle dichiarate nella sintassi "CREATE..." vengono ignorate.
Le mie non sono critiche a SQLite, ma solo un modo per dire di fare attenzione a come si usa questo motore; ovviamente picavbg, essendo alle prima armi, non ne è a conoscenza, per cui ho ritenuto avvertire anche lui dei problemi a cui và incontro.