ROW_FORMAT = DYNAMIC sql查询错误

时间:2014-05-14 09:05:30

标签: dynamic innodb myisam compression

这是查询:

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

1 个答案:

答案 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

但为什么要应用此设置?据我所知,你不知道究竟是做什么的?在这种情况下,我更喜欢工作解决方案,我也不理解我仍然不理解的不工作的解决方案。或者您有外部要求吗?

我希望这会有所帮助。