Задать вопрос
@T3R3AND

Как правильно создать таблицу?

Здравствуйте, есть примерно такая таблица:
CREATE TABLE `orders` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`shop` INT(11) NOT NULL,
`order` INT(11) NOT NULL,
`curr` VARCHAR(3) NOT NULL DEFAULT 'rub',
`amount` DECIMAL(11,2) NOT NULL,
`result` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`, `shop`, `order`, `curr`)
);

Но если я использую:
INSERT ... ON DUPLICATE KEY UPDATE `id` = LAST_INSERT_ID(`id`), `amount` = 11.1, `result` = ''

То запись просто создается новая, когда `shop`, `order`, `curr` не отличаются.
Помогите, решить эту проблему, пожалуйста.
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
id отличается, значит ключ не уникальный.
Если (`shop`, `order`, `curr`) однозначно определяют запись, то надо либо id убрать вообще, либо сделать первичным ключом только id, а эти три поля сделать уникальным ключом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы