Claves foraneas

Ruben
06 de Septiembre del 2005
Buenas, mi duda es la siguiente:
Tengo una tabla "A" con clave primaria formada por campos "a1" y "a2", y una tabla "B", de manera que segun mi modelo tiene que haber propagacion de la clave de "A" a "B", mi problema es que cuando establezco mi restriccion:

(b1,b2) --> A(a1,a2) me sale un error en MySql front....
Tambien he probado a crear la restriccion mediante una sentencia sql y tambien obtengo error....

¿Es que MySql no permite clave foraneas compuestas de mas de un elemento?

Las versiones que utilizo son:
mysql-4.1.13.
mysql front 3.2 (compilacion 6.25)

Gracias ;)

retaque
06 de Septiembre del 2005
A partir de la versión 3.23.43b, se pueden definir restricciones de claves foráneas con el uso de tablas InnoDB. InnoDB es el primer tipo de tabla que permite definir estas restricciones para garantizar la integridad de los datos.

Para trabajar con claves foráneas, necesitamos hacer lo siguiente:
• Crear ambas tablas del tipo InnoDB.
• Usar la sintaxis FOREIGN KEY(campo_fk) REFERENCES nombre_tabla (nombre_campo)
• Crear un índice en el campo que ha sido declarado clave foránea.
InnoDB no crea de manera automática índices en las claves foráneas o en las claves referenciadas, así que debemos crearlos de manera explícita. Los índices son necesarios para que la verificación de las claves foráneas sea más rápida. A continuación se muestra como definir las dos tablas de ejemplo con una clave foránea.
CREATE TABLE cliente
(
id_cliente INT NOT NULL,
nombre VARCHAR(30),
PRIMARY KEY (id_cliente)
) TYPE = INNODB;

CREATE TABLE venta
(
id_factura INT NOT NULL,
id_cliente INT NOT NULL,
cantidad INT,
PRIMARY KEY(id_factura),
INDEX (id_cliente),
FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)
) TYPE = INNODB;