sql >> Base de Datos >  >> RDS >> PostgreSQL

Configuración de clave externa con diferente tipo de datos

En realidad, tiene sentido aquí es por qué:

En una tabla, de hecho, puede establecer cualquier columna como su clave principal. Por lo tanto, podría ser un número entero, doble, una cadena, etc. Aunque hoy en día, en su mayoría usamos números enteros o, más recientemente, cadenas como clave principal en una tabla.

Dado que la clave externa apunta a la clave principal de otra tabla, es por eso que debe especificar el tipo de datos de la clave externa. Y obviamente debe ser del mismo tipo de datos.

EDITAR:

Las implementaciones de SQL son laxas en este caso, como podemos ver:permiten tipos compatibles (INT y BIG INT, Float o DECIMAL y DOUBLE) pero bajo su propio riesgo . Tal como podemos ver en su ejemplo, a continuación.

Sin embargo, las normas SQL especifican que ambos tipos de datos deben ser iguales. Si el tipo de datos es un carácter, deben tener la misma longitud; de lo contrario, si es un número entero, deben tener el mismo tamaño. y debe ambos estar firmado o ambos sin firmar .

Puede verlo usted mismo aquí, un capítulo de un libro de MySQL publicado en 2003.

Espero que esto responda a tu pregunta.