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

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

  • technobulka

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

    Spritz 30 августа 2010 г. 12:46, спустя 24 минуты 7 секунд

    всё, разобрался)) примеры все какие-то дибильные были))
    на id же пофигу, то что он обновляется у каждого повторения?
    Спустя 242 сек.
    хотя не пофигу… у меня же связка post_pd tag_id -_-
    Спустя 168 сек.
    что мне делать? убрать АИ у id таблицы тегов? или как поступить?)) я не знаю)))
    Высокоуровневое абстрактное говно
  • technobulka

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

    Spritz 30 августа 2010 г. 13:02, спустя 16 минут 2 секунды

    убрать аи было глупой ошибкой -_-
    Высокоуровневое абстрактное говно
  • adw0rd

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

    Spritz 31 августа 2010 г. 3:13, спустя 14 часов 11 минут 1 секунду

    какой нахер replace - это херня, еще select+update херня

    юзайте on duplicate key, если попадается дубль, то срабатывает условие после on duplicate key, например ON DUPLICATE KEY UPDATE var = 123
    если попадется дубль, то затронется 2 поля, если нет, то 1

    если надо игнорировать дубли, то юзайте INSERT IGNORE и все
    adw/0
  • technobulka

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

    Spritz 31 августа 2010 г. 3:16, спустя 3 минуты 9 секунд

    о велики адво! у меня тут пиздец)) помоги простолюдину)) или дай пример))
    Высокоуровневое абстрактное говно
  • technobulka

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

    Spritz 31 августа 2010 г. 3:22, спустя 6 минут 23 секунды

    у меня вроде получилось, но потом я заметил ниипаццо вселенский косяк))
    например, при редактировании поста есть теги "новости, пыха", я их стираю и пишу "жквери"… так вместо того, чтоб стереть и поставить новый, он мне тупо третий добавляет в тем двум))
    кароче, надо все опять переделывать))
    Высокоуровневое абстрактное говно
  • artoodetoo

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

    Spritz 31 августа 2010 г. 3:26, спустя 3 минуты 12 секунд

    почему replace херня? он делает что требуется
    возможно replace будет быстрее, т.к. он не читает данные перед записью. а возможно медленнее. завист от… читать:
    http://www.mysqlperformanceblog.com/2007/01/18/insert-on-duplicate-key-update-and-replace-into/
    ιιlllιlllι унц-унц
  • artoodetoo

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

    Spritz 31 августа 2010 г. 4:00, спустя 34 минуты 28 секунд

    INSERT ON DUPLICATE KEY UPDATE и REPLACE INTO ведут себя по разному с автоинкрементным полем (если оно НЕ указано в запросе) и в случае, если перечисленные поля неуникально индексированы. если есть триггеры на изменяемой таблице, тоже будет разная реакция.

    надо знать оба варианта и выбирать правильный. для ТС верный ответ
    REPLACE INTO `tags` (`tag_name`, `tag_translate`) VALUES ('$tag', $tag_t')
    при этом tag_name должен быть PRIMARY KEY или UNIQUE KEY
    ιιlllιlllι унц-унц
  • technobulka

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

    Spritz 31 августа 2010 г. 4:08, спустя 8 минут 10 секунд

    REPLACE INTO `tags` (`tag_name`, `tag_translate`) VALUES ('$tag', $tag_t')
    при этом tag_name должен быть PRIMARY KEY или UNIQUE KEY

    именно так у меня и было… но реплейс обновляет айди.. то есть у меня было, например, 1 => новости, 2 => пхп, 3 => жквери… я добавляю новости и у меня получается так - 4 => новости, 2 => пхп, 3 => жквери…
    мне это не надо, так как у меня таблица-связка post_id tag_id… а после обновления ид в таблеце tags, этот тег теряется в таблице-связке…
    кто-нить че-нить понял?))
    Высокоуровневое абстрактное говно
  • artoodetoo

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

    Spritz 31 августа 2010 г. 4:11, спустя 2 минуты 51 секунду

    какой бля айди? - добавь его в replace и он не будет изменяться

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

    ιιlllιlllι унц-унц
  • technobulka

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

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

    про нормальные формы учил?

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

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

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

    школота. не нужны два ключа для одного и того же
    ιιlllιlllι унц-унц
  • phpdude

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

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


    школота. не нужны два ключа для одного и того же
    да ну? :)
    Сапожник без сапог
  • artoodetoo

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

    Spritz 31 августа 2010 г. 4:21, спустя 2 минуты 25 секунд

    ну да
    Спустя 70 сек.
    для одного и того же. если айди - это "номер тега", а тег уникален сам по себе, айди лишний
    ιιlllιlllι унц-унц
  • Sinkler

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

    Spritz 31 августа 2010 г. 4:37, спустя 15 минут 52 секунды


    ну да
    Спустя 70 сек.
    для одного и того же. если айди - это "номер тега", а тег уникален сам по себе, айди лишний
    а если идентификатор тега используется в других таблицах, а мы захотим тег переименовать, то нам все строки в других таблицах апдейтить надо??
  • phpdude

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

    Spritz 31 августа 2010 г. 4:38, спустя 44 секунды



    ну да
    Спустя 70 сек.
    для одного и того же. если айди - это "номер тега", а тег уникален сам по себе, айди лишний
    а если идентификатор тега используется в других таблицах, а мы захотим тег переименовать, то нам все строки в других таблицах апдейтить надо??
    красавчег, я не успел подъебать :(
    Сапожник без сапог

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