这是查询:
CREATE TABLE `pedidos_detalle` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`fk_pedido` int(11) DEFAULT NULL,
`fk_articulo` int(11) DEFAULT NULL,
`precio` decimal(10,2) DEFAULT NULL,
`cantidad` int(11) DEFAULT NULL,
`importe` decimal(10,2) DEFAULT NULL,
`detalle` text,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=16503 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
此查询的结果是错误消息:#1005 - 无法创建表'netlogiq_acros.pedidos_detalle'(错误号:1478)
如果我删除ROW_FORMAT=DYNAMIC
它可以工作,但我知道不会对该功能产生什么影响。或者如果将InnoDB更改为MyISAM,它也可以。但我仍然不知道会有什么影响。有人可以帮我解决这个问题吗?向我解释myIsam和Innodb之间的区别以及为什么我应该使用ROW_FORMAT = DYNAMIC或COMPRESSED? THX
答案 0 :(得分:0)
innoDB和MyIsam是Table格式。 MyIsam是较旧的,并且已经标准化,直到mysql 5.5。你使用的是哪个版本?你可以在维基百科上阅读这两者的优点和缺点。我建议使用innoDB。
设置ROW_FORMAT = DYNAMIC的含义在此解释:http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-row-format-dynamic.html
但为什么要应用此设置?据我所知,你不知道究竟是做什么的?在这种情况下,我更喜欢工作解决方案,我也不理解我仍然不理解的不工作的解决方案。或者您有外部要求吗?
我希望这会有所帮助。