Перейти к содержимому


Как использовать INSERT INGNORE INTO


  • Вы не можете ответить в тему
Сообщений в теме: 3

#1 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 29 November 2013 - 11:12 PM

Всегда если требовалось вставить строку если такой нет, использовал 2 запроса, т.е. сначала
SELECT

затем
INSERT

но вычитал что можно делать все это в одном запросе используя
INSERT INGNORE INTO

для этого нужно сделать уникальным и индексным поле по которому будет идти проверка.
Вродебы все сделал, но строки не вставляются вообще никакие.

Может кто сталкивался с подобной проблемой, и подскажет что именно я делаю не так.
  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 29 November 2013 - 11:34 PM

Я пользовал. Не помню ограничений. Вроде, использовал как-то INSERT IGNORE вместо REPLACE, были какие-то тонкости использования. По памяти - INSERT IGNORE - это ничего не делать если такая уникальная запись по тем или иным причинам уже есть. В отличие от REPLACE, который перезапишет эту запись. Но и не выдавать ошибку в отличие от просто INSERT. Как-то так.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 29 November 2013 - 11:50 PM

Да я понимаю в чем разница )) . Я не понимаю почему у меня не работает эта конструкция.
Мне как раз не нужно удалять и записывать строку, мне нужно проверять по одному полю, если такое значение уже есть, то пропускать и добавлять другие строки.

Мда это капец какойто. Было было но такого еще не было.

Думаю нет фигня должно работать проверю через phpmyadmin запрос. Копирую - пишет ошибка синтаксиса - Гм....
Удаляю IGNORE все ок строка добавилась
Руками дописываю IGNORE - :blink: работает.

Оказывается там откуда я скопировал оператор была в нем ошибка было написано INGNORE - а я как дурак сижу второй вечер гугл пытаю
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 29 November 2013 - 11:58 PM

Оказывается там откуда я скопировал оператор была в нем ошибка было написано INGNORE - а я как дурак сижу второй вечер гугл пытаю

Вот удивил. Я тут вчера пару часов ошибку искал, а всего-то делов было в ProdictID вместо productID. Вроде и очевидно, а по ходу не сразу и заметишь, что первая буква большая вместо мелкой. Причем сам же и написал почему-то....
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)