¿Cómo puedo encontrar qué columna es la clave principal de una tabla mediante una consulta?Pregunta SQL para encontrar la clave principal de una tabla?
Respuesta
Para Oracle, puede buscarlo en el ALL_CONSTRAINTS
tabla:
SELECT a.COLUMN_NAME
FROM all_cons_columns a INNER JOIN all_constraints c
ON a.constraint_name = c.constraint_name
WHERE c.table_name = 'TBL'
AND c.constraint_type = 'P';
DEMO.
Para SQL Server, ya fue respondida here, y para MySQL, marque @ajon's answer.
Este es un duplicado question:
crédito para Lukmdo para esta respuesta:
Podría no se aconseja, pero funciona muy bien:
show index from TABLE where Key_name = 'PRIMARY' ;
La forma sólida es utilizar INFORMATION_SCHEMA:
SELECT k.COLUMN_NAME
FROM information_schema.table_constraints t
LEFT JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
AND t.table_schema=DATABASE()
AND t.table_name='owalog';
¿Por qué asumes que es MySQL? –
Es cierto que esto se aplica al menos a MySQL – ajon
Intentar esta consulta en el servidor SQL:
SELECT X.NAME AS INDEXNAME,
COL_NAME(IC.OBJECT_ID,IC.COLUMN_ID) AS COLUMNNAME
FROM SYS.INDEXES X
INNER JOIN SYS.INDEX_COLUMNS IC
ON X.OBJECT_ID = IC.OBJECT_ID
AND X.INDEX_ID = IC.INDEX_ID
WHERE X.IS_PRIMARY_KEY = 1
AND OBJECT_NAME(IC.OBJECT_ID)='YOUR_TABLE'
La consulta siguiente da la lista de todas las claves principales en la base de datos dada.
SELECT DISTINCT TABLE_NAME ,column_name
FROM INFORMATION_SCHEMA.key_column_usage
WHERE TABLE_SCHEMA IN ('*your_db_name*');
No es estrictamente cierto, devolverá todas las claves únicas, no solo las primarias –
Para MySQL:
SELECT GROUP_CONCAT(COLUMN_NAME), TABLE_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = '**database name**'
AND CONSTRAINT_NAME='PRIMARY'
GROUP BY TABLE_NAME;
Advertencia una clave principal con dos columnas habrán ellos separados por coma (,
)
- 1. Pregunta principal compuesta/clave externa Oracle pregunta
- 2. SQL - muchos-a-muchos tabla principal clave
- 3. SQL Server: Obtener la clave principal tabla mediante consulta SQL
- 4. Agregar columna de clave principal en la tabla SQL
- 5. Pregunta rápida de SQL: ¿Corregir la sintaxis para crear una tabla con una clave principal en H2?
- 6. ¿Obtener la clave principal de la tabla?
- 7. mysqldump tabla sin volcar la clave principal
- 8. MySQL: Determinar la tabla de clave principal dinámicamente
- 9. ¿Cómo se enumera la clave principal de una tabla de SQL Server?
- 10. Creando una clave principal en una tabla temporal - ¿Cuándo?
- 11. ¿Cuándo no necesitamos una clave principal para nuestra tabla?
- 12. Clave principal SQL: entero vs varchar
- 13. ¿Cómo puedo determinar si una columna está en la clave principal de su tabla? (SQL Server)
- 14. Clave principal sin ningún índice en una tabla?
- 15. Tipo de datos sql para clave principal - SQL Server?
- 16. Crear tabla de unión sin clave principal
- 17. SQL Server BIGINT o DECIMAL (18,0) para la clave principal
- 18. cómo agregar una clave principal a una tabla en rieles
- 19. Cómo eliminar propiedad en clúster pero conservar la clave principal en una tabla. SQL Server 2005
- 20. Agregar clave principal a una tabla con muchos registros
- 21. PHP MySQL Comprobar si una tabla tiene una clave principal
- 22. Aumento automático de la clave principal en tablas SQL
- 23. ¿Puedo establecer ignore_dup_key para una clave principal?
- 24. SQL Server 2008: averiguar la clave principal/externa en la tabla?
- 25. SQL: establecer la columna existente como clave principal en MySQL
- 26. Cambiar clave principal a clave compuesta (la clave principal ya existe)
- 27. cómo obtener los nombres de las columnas de la clave principal para una tabla determinada?
- 28. ¿Cómo puedo obtener la siguiente clave principal para SQL 2008 en Entity Framework 4
- 29. Migración de carriles Crear clave principal de tabla
- 30. clave principal compuesto en el tipo de tabla de variables
Qué base de datos está utilizando? –
@ JoãoSilva - oráculo, servidor sql, mysql. –
Definitivamente debe proporcionar más detalles en caso de tener más preguntas, y usar etiquetas apropiadas para agregar contexto a la pregunta. En esta pregunta, por ejemplo, la respuesta puede ser muy diferente, dependiendo de la base de datos específica que esté utilizando. –