Try create/recreate table with this sql
DROP TABLE IF EXISTS `catalogrule_product_replica`;
CREATE TABLE `catalogrule_product_replica` (
`rule_product_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Rule Product Id',
`rule_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Rule Id',
`from_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'From Time',
`to_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'To time',
`customer_group_id` int(11) DEFAULT NULL,
`product_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Product Id',
`action_operator` varchar(10) DEFAULT 'to_fixed' COMMENT 'Action Operator',
`action_amount` decimal(12,4) NOT NULL DEFAULT '0.0000' COMMENT 'Action Amount',
`action_stop` smallint(6) NOT NULL DEFAULT '0' COMMENT 'Action Stop',
`sort_order` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Sort Order',
`website_id` smallint(5) unsigned NOT NULL COMMENT 'Website Id',
PRIMARY KEY (`rule_product_id`),
UNIQUE KEY `IDX_EAA51B56FF092A0DCB795D1CEF812B7B` (`rule_id`,`from_time`,`to_time`,`website_id`,`customer_group_id`,`product_id`,`sort_order`),
KEY `CATALOGRULE_PRODUCT_CUSTOMER_GROUP_ID` (`customer_group_id`),
KEY `CATALOGRULE_PRODUCT_WEBSITE_ID` (`website_id`),
KEY `CATALOGRULE_PRODUCT_FROM_TIME` (`from_time`),
KEY `CATALOGRULE_PRODUCT_TO_TIME` (`to_time`),
KEY `CATALOGRULE_PRODUCT_PRODUCT_ID` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CatalogRule Product';