2013-10-24 2 views
0

В основном мы имеем ту же проблему, как этот вопрос: ON DUPLICATE KEY update (with multiple where clauses)Заменить/Вставить на дубликат ключа с, где положение [MySql]

Но мы не можем иметь уникальные ключи для ключей ссылки, потому что нам нужны дубликаты обоих. Есть ли способ сделать это с помощью одного запроса?

У нас есть уникальный идентификатор, а также нужно записывать дату и увеличивать значение, но также иметь возможность обновлять/вставлять, не делая несколько запросов.

+0

Так что иногда вы хотите разрешить дубликаты, но в других случаях вы хотите обновлять существующие строки, а не создавать больше дубликатов? Я не думаю, что вы можете сделать это в одном запросе, вам нужно протестировать, а затем либо вставить, либо обновить. – Barmar

+0

Нет, у нас есть ID и DATE, которые всегда будут одинаковыми, но есть еще одна строка со значением подсчета, которое будет обновляться, значение подсчета не используется для поиска записи, но – Nowayz

+0

Схема базы данных поможет –

ответ

0

Пожалуйста, извините меня, если я неправильно вас понимаю, но мне кажется, что то, что вы хотите, может быть сделано с помощью ограничения UNIQUE, упомянутого в question you're referencing.

Знаете ли вы, что вы можете создать ограничение UNIQUE для более чем одного столбца? То есть комбинация из двух столбцов уникальна, но сами столбцы не обязательно должны быть.

В вашем случае вы должны использовать ALTER TABLE table ADD CONSTRAINT uq_table_id_date UNIQUE (id, date).

Смежные вопросы