SQL - CONSTRAINT, INDEX y KEY

   
Vista:

CONSTRAINT, INDEX y KEY

Publicado por Twenty (1 intervención) el 03/05/2010 18:17:40
Buenas tardes,

quería saber qué son las CONSTRAINT. Al exportar el código SQL de una base de datos, por cada inserción de una FOREIGN KEY pone:

ALTER TABLE `aparca`
ADD CONSTRAINT `aparca_ibfk_2` FOREIGN KEY (`codigo_cochera`) REFERENCES `cochera` (`codigo_cochera`);

Según tengo entendido, se añade una CONSTRAINT con un nombre genérico que hace de INDEX para la FOREIGN KEY, no?

Entonces no necesitaría (además) una sentencia del estilo de:

ADD INDEX ON aparca(codigo_cochera);

qué diferencia hay entre CONSTRAINT e INDEX? Gracias de antemano.

Un saludo,

Aarón
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CONSTRAINT, INDEX y KEY

Publicado por Leto (12 intervenciones) el 06/05/2010 13:00:26
Una constraint es una restricción mientras que un index es un indice. Lo primero garantiza la integridad referencial de la BBDD, lo segundo es una estructura de datos interna, ordenada, que usa el motor para optimizar y agilizar las consultas o actualizaciones sobre las tablas.

En este caso que expones se crea una clave forana en la tabla aparca que apunta a la tabla cocheras. Ademas crea un indice en la tabla aparca sobre el campo codigo_cochera. Esto permitirá al motor reunir datos de ambas tablas con mayor velocidad gracias al indice y no permitira ningun valor en el campo codigo_cochera que no exista como clave primaria en la tabla cochera gracias a la constraint.

documentacion:

http://deletesql.com/viewtopic.php?f=5&t=20

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar