De acuerdo a geopackage.org's "introducción a la GeoPackage" guía de características se almacenan en definido por el usuario los datos de las tablas. Es que parece que dice que estas tablas requieren una clave primaria:
Aparte de la geometría de la columna y una clave principal, el esquema de una tabla características es el ejecutor.
(El énfasis es mío)
Es que un duro requisito? El subyacente SQLite, probablemente, no requiere de una clave principal, pero no la GeoPackage especificación de mandato de cada capa para tener uno?
Motivación:
Estoy preguntando, porque QGIS 3.4.4 parece manejar esto de manera incoherente. Si se cruzan dos capas de vector de la capa resultante a menudo no tienen ningún atributos únicos (a excepción quizá de la geometría de la columna si las capas de entrada se topológica).
- Si me intenta almacenar el resultado directamente a un GeoPackage capa, características que daría lugar a infracciones de restricción ÚNICA en la
fid
columna (que corresponde a lafid
de la primera capa de entrada y, al parecer, automáticamente elegido como el nuevo GeoPackage de la capa de PK) son simplemente omite, el giro de la capa resultante incompleta. - Si me almacenar el resultado en una "capa temporal", el resultado es completo.
fid
de la primera capa de entrada se convierte enfid
columna de la capa temporal yfid
de la segunda capa de entrada se convierte enfid_2
no.- Si yo ingenuamente tratar de conservar en un GeoPackage de la capa de uso "de forma permanente", que se genera debido a
UNIQUE
infracciones de restricción. - Si yo uso "de forma permanente", pero en el cuadro de diálogo quitar
fid
de la "FID" campo, que se puede guardar en un GeoPackage capa fina. (Y la carga de se confirma que todas las características están todavía allí y de que no hay nuevos columna única para un PK ha sido añadido.)
- Si yo ingenuamente tratar de conservar en un GeoPackage de la capa de uso "de forma permanente", que se genera debido a
- Si me pongo de una capa cargada de una GeoPackage que, al parecer, tiene un PK de campo (
fid
ha "not Null" y "Único" marcada como restricciones en las propiedades de Capa > forma de Atributo) y en quitar elfid
de campo en las propiedades de Capa > Campos de Origen, de QGIS se niega a guardar la capa que cuando tratando de dejar "modo de edición" para esa capa.
(No etiquetado con qgis, qgis-3.4, etc., como la pregunta en sí misma es sobre el formato de archivo y debe ser independiente de lo que el Software está siendo utilizado).