Problemi che converte la tabella Myisam in innodB (numero di colonne auto)
-
31-10-2019 - |
Domanda
Ho problemi a cercare di convertire un tavolo da Myisam a InnoDB in MySQL 5.6.
Di seguito è riportato il dump della tabella:
--
-- Table structure for table `companies`
--
DROP TABLE IF EXISTS `companies`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `companies` (
`uid` int(20) NOT NULL,
`cid` int(20) NOT NULL AUTO_INCREMENT,
`cname` varchar(500) NOT NULL,
`rfc` varchar(20) NOT NULL,
`address` varchar(1000) NOT NULL,
`dbUseExternal` tinyint(1) NOT NULL DEFAULT '0',
`dbHost` varchar(50) NOT NULL,
`dbPort` varchar(50) NOT NULL,
`dbUser` varchar(50) NOT NULL,
`dbPass` varchar(50) NOT NULL,
`dbSSL` varchar(50) NOT NULL,
`dbDriver` varchar(50) NOT NULL,
`dbName` varchar(50) NOT NULL,
`status` int(10) NOT NULL,
PRIMARY KEY (`uid`,`cid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
Funziona come Myisam. Ma, se provo a convertirlo in innodB (o se provo a modificare questo dump per inserirlo sulla riga di comando come file SQL), ottengo il seguente errore:
Incorrect table definition; there can be only one auto column and it must be defined as a key
Capisco quell'errore - o almeno ho pensato di averlo fatto. Non ne sto davvero usando più di uno AUTO_INCREMENT
colonna e esso è definito come chiave primaria.
Inoltre, le informazioni che ho trovato sull'errore sono sempre dovute a una chiave mancante ovvia o di una definizione di auto_increment duplicata. Un'altra cosa che vedo generalmente commentata è che Lo stesso vale per Myisam e InnoDB.
Quindi, perché funziona per Myisam e non per InnoDB?
Grazie in anticipo per i commenti.
Francisco
Nessuna soluzione corretta