Автор Тема: insert без дупликатов  (Прочитано 5599 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн golden-den

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 118
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kosmos13.narod.ru
insert без дупликатов
« : 18 Июля 2007, 22:02:15 »
CREATE TABLE `catalog_data` (
  `id` int(11) NOT NULL auto_increment,
  `cid` int(16) default NULL,
  `title` text
  PRIMARY KEY  (`id`)
) TYPE=MyISAM


Как добавить в эту таблицу 1 строку, только так чтобы не было дупликатов со значениями \'cid\'.

Делать сначала один запрос,  в которм проверять наличие строки, а заетм, если еще нет такой строки, то вторым запросом добавлять?
Можно ли одним запросом сделать?

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
insert без дупликатов
« Ответ #1 : 19 Июля 2007, 10:37:56 »
создать unique key(cid) и использовать INSERT IGNORE или REPLACE
На Машине Тьюринга далеко не уедешь.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
insert без дупликатов
« Ответ #2 : 19 Июля 2007, 13:42:25 »
fidget
гм
ну, дупликатов точно не будет :-)
но подозреваю, что цели преследуются несколько иные :)

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
insert без дупликатов
« Ответ #3 : 20 Июля 2007, 13:33:28 »
hanslinger, у него цель сделать добавление одним запросом так чтобы не было дубликатов.
На Машине Тьюринга далеко не уедешь.

Оффлайн golden-den

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 118
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kosmos13.narod.ru
insert без дупликатов
« Ответ #4 : 21 Июля 2007, 08:09:40 »
fidget
Да. хочу одним запросом добавить все записи (а их бывает много), так чтобы новые добавились, а старые сделали update

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
insert без дупликатов
« Ответ #5 : 21 Июля 2007, 09:07:43 »
тогда смотрите в сторону либо REPLACE либо INSERT .. ON DUPLICATE KEY UPDATE.

Нов обоих случаях вам нужно создать UNIQUE KEY на этот столбец.
На Машине Тьюринга далеко не уедешь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28