MySQL insert on duplicate update

DriverCat
На сайте с 10.04.2008
Offline
116
732

Добрый вечер!

Есть таблица

goodsXML	CREATE TABLE `goodsXML` (

`id` bigint(20) unsigned NOT NULL,
`localID` int(6) NOT NULL,
`dateCreated` datetime NOT NULL,
`dateModified` datetime NOT NULL,
`name` char(255) DEFAULT NULL,
`groupName` char(255) DEFAULT NULL,
`url` char(255) NOT NULL,
`sourceUrl` char(255) NOT NULL,
`categoryID` int(6) unsigned NOT NULL,
`producerID` int(6) DEFAULT NULL,
`shopID` int(6) NOT NULL,
`XMLUrlOrder` tinyint(2) NOT NULL,
`price` float(12,2) NOT NULL,
`description` text,
`descriptionHash` char(32) NOT NULL,
`isRST` tinyint(1) NOT NULL DEFAULT '0',
`isReplica` tinyint(1) NOT NULL DEFAULT '0',
`status` tinyint(1) NOT NULL DEFAULT '0',
`comment` char(255) NOT NULL,
UNIQUE KEY `ixGroupNameCategoryIDShopIDProducerID` (`shopID`,`localID`),
KEY `ixGroupNameCategoryID` (`groupName`,`categoryID`),
KEY `ixDateModified` (`dateModified`),
KEY `ixStatusShopID` (`status`,`shopID`),
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=133298 DEFAULT CHARSET=utf8

При запросе вида

INSERT goodsXML

SET
id=543534,
localID='235435',
...
ON DUPLICATE KEY UPDATE

description='',
...

в некоторых случаях выдает ошибку

SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row в строке 814

Чего только уже и ни делал, в том числе удалил остальные уникальные ключи, даже auto increment убрал. При чем записи все обновляются, но ошибка из-за чего не пойму. Версия mysql 5.5.31-0.

Буду рад, если кто встречался с такой проблемой.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

Subquery returns more than 1 row

Подзапрос вернул больше чем 1 строку(это плохо).

Подпись))
DriverCat
На сайте с 10.04.2008
Offline
116
#2
Милованов Ю.С:
Subquery returns more than 1 row
Подзапрос вернул больше чем 1 строку(это плохо).

Это понятно, но здесь нет никаких подзапросов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий