ФорумРазработкаБазы данных → INSERT без повторений

INSERT без повторений

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:16

    чет немного затупил…
    дело вот в чем - мне нужно записать в таблицу строку без повторений, то есть, если такая есть, то не писать…
    как я понял в INSERT нет IF NOT EXIST… с ON DUPLICATE KEY UPDATE почему-то все равно записывает, мб где-то ошибся…
    INSERT INTO `tags` (`tag_name`, `tag_translate`) VALUES ('$tag', $tag_t') ON DUPLICATE KEY UPDATE //что сюда ставить? -_-

    или сделать через жопу и сначала отправить запрос на проверку, а потом записывать?))
    Высокоуровневое абстрактное говно
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:22, спустя 5 минут 34 секунды

    вообще, нужно просто сделать поле уникальным

    ALTER TABLE `tags` ADD UNIQUE (
    `tag_name`
    )

  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:24, спустя 2 минуты 14 секунд

    пойду дрючить гугл -_-
    Высокоуровневое абстрактное говно
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:30, спустя 6 минут 4 секунды

    Зачем?

    Я же написал делаешь поле уникальным, и когда делаешь обыкновенную вставку, запрос не отработает, если будут повторяющиеся записи
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:32, спустя 2 минуты 9 секунд

    ну, для начала понять, куда этот запрос херачить -_-
    Высокоуровневое абстрактное говно
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:35, спустя 3 минуты 10 секунд


    USE mydbname;
    ALTER TABLE `tags` ADD UNIQUE (
    `tag_name`
    );


    выполни в pma
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 4:51, спустя 15 минут 19 секунд

    ага, разобрался)) спс
    а что-нить будет возвращать, если есть совпадения?
    Высокоуровневое абстрактное говно
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 7:51, спустя 3 часа 6 секунд

    ошибку, типа "такой ключ в таблице уже есть, идите нафик, вставлять не буду"
    Work, buy, consume, die
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 13:52, спустя 6 часов 1 минуту 38 секунд

    "такой ключ в таблице уже есть, идите нафик, вставлять не буду"

    мне лучше, чтоб он просто молчал))
    Высокоуровневое абстрактное говно
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 30 августа 2010 г. 14:28, спустя 35 минут 9 секунд

    Stasovsky, используй проверку типа селескт_каунт)
    Да я за неебание себе мозга такой хуйней.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 30 августа 2010 г. 19:15, спустя 4 часа 47 минут 8 секунд

    в mysql для таких случаев есть REPLACE, а в oracle INSERT OR UPDATE если мне не изменяет склероз
    ιιlllιlllι унц-унц
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 21:30, спустя 2 часа 14 минут 47 секунд

    artoodetoo, а зачем мне реплейс? мне же не заменять надо, вроде…
    Спустя 220 сек.
    goDB мне возвращает фатал эррор))
    error = 1062 Duplicate entry

    Высокоуровневое абстрактное говно
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 22:10, спустя 40 минут 53 секунды

    goDB мне возвращает фатал эррор))
    error = 1062 Duplicate entry


    Какой фатал эррор? Это просто эррор, оно так и должно быть - это правильно
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 30 августа 2010 г. 22:17, спустя 6 минут 34 секунды

    Stasovsky, а вот ты прочитай про риплейс и будешь знать на кой оно тебе нужно :) На самом деле как раз таки оно тебе и может понадобится.
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 августа 2010 г. 23:22, спустя 1 час 4 минуты 40 секунд

    честно, до меня так и не доперло, зачем мне заменять строку? объясните бездарю))
    Высокоуровневое абстрактное говно

Пожалуйста, авторизуйтесь, чтобы написать комментарий!