¿Podemos usar Guid como clave principal en la base de datos de SQL Server?

¿Es posible utilizar GUID como claves primarias en la base de datos SQLITE? Si es posible, ¿qué tipo de datos se puede utilizar?

El propio SQLite no admite GUID como tipo interno.

¡Excepto eso, lo hace! (Una especie de). Recuerde que en SQLite cualquier cadena se puede usar como nombre de tipo y que incluye GUID o UUID (lea más acerca de los tipos de datos SQLite ).

De acuerdo con esas reglas, el tipo GUID tiene afinidad NONE , que es la misma que para los campos BLOB . Con esto en mente, puede crear una columna de tipo GUID y utilizar las siguientes reglas para acceder a ella:

  • Guárdelo como cadena como X'01020304050607080910111213141516' (la notación X se utiliza para representar el valor BLOB 16 bytes). Para insertar, utilice:

     INSERT INTO mytable (uuid) VALUES (X'01020304050607080910111213141516'); 
  • Lea como BLOB 16 bytes. quote(uuid) se puede utilizar para dar formato a la salida usando la notación X:

     SELECT quote(uuid) FROM mytable 

Esta columna también se puede usar como clave primaria. Desafortunadamente, no hay ninguna funcionalidad de AUTOINCREMENT como existe para las llaves primarias enteras – usted tendrá que manejar usted mismo. Puede utilizar algo tan simple como randomblob(16) para eso, pero no es UUID como se define por estándar .

Confusamente, también puede almacenar la representación de texto de UUID en el mismo campo (SQLite no le impedirá hacerlo), pero tomará al menos 2 veces más espacio: BLOB es 16 bytes, UUID como texto es al menos 32 bytes.

sqlite3 no tiene un formato UUID de 128 bits nativo, per se.

Sin embargo, los GUID se pueden utilizar como claves en SQLite como TEXT o una representación BLOB binaria.

Con base en los números de rendimiento publicados en respuesta a una pregunta similar, los UUID binarios y de cadena pueden ser eficientes en SQLite para crear y consultar cuando se indexan .

Ver tabla en: https://stackoverflow.com/a/11337522/3103448

SQLite puede generar ULOIDES BLOB o TEXT con randomblob(16) y hex(X) Por ejemplo: lower(hex(randomblob(16)))

Con una perfomance de índice similar, un trade-off significativo se convierte en si se prefiere una cadena legible humana al tamaño de datos binario más pequeño .

  • Android bluetooth UUID que conecta APP a ANDROID
  • ¿Cómo obtengo el UUID de un dispositivo bluetooth?
  • ¿Cómo puedo obtener el UUID de mi teléfono Android en una aplicación?
  • iOS alternativa al android's UUID (long mostSigBits, long leastSigBits)
  • Conexión de varios dispositivos al bluetooth en Android
  • Android: obtiene UUID Bluetooth para este dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.