Disculpame, yo nunca utilizo Disenadores de DB siempre hago todo a mano pero.... esto:
CREATE TABLE IF NOT EXISTS `usuario` (
`codigo` INT(11) NOT NULL AUTO_INCREMENT,
`car_codigo` INT(11) NOT NULL,
`per_codigo` INT(11) NOT NULL,
`idusuario` VARCHAR(20) NOT NULL,
`fecreg` DATE NOT NULL,
`fecing` DATE DEFAULT NULL,
`estado` CHAR(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`codigo`),
KEY `usuario_FKIndex1` (`per_codigo`),
KEY `usuario_FKIndex2` (`car_codigo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Donde especifica ahi que habra una FOREIGN KEY a otra tabla???
Sere totalmente ignorante en este caso pero pensaria esto
KEY `usuario_FKIndex1` (`per_codigo`), como la indicacion de ello, aunque jamas he visto esa sintaxis pero en caso de que sea valida (porque aparentemente lo es te crea la tabla en el motor) puede darse el caso que dicha sintaxis aunque la continue soportando, en la version del motor donde la estas aplicando ya no aplique funcional como una vez a lo mejor si fue. Haz intentado crear la tabla anterior de la misma forma (en sintaxis) pero manualmente dentro del motor, no con ninguna aplicacion, y ya hecho ver si funciona?
Disculpa mi ignorancia en esta parte, cuando nunca he visto algo es normal que reaccione de tal manera