За последние 24 часа нас посетили 20198 программистов и 1693 робота. Сейчас ищут 1824 программиста ...

Как работать с таблицей, в которой поле id не AUTO_INCREMENT?

Тема в разделе "MySQL", создана пользователем Walk, 12 сен 2017.

  1. Walk

    Walk Активный пользователь

    С нами с:
    7 сен 2008
    Сообщения:
    452
    Симпатии:
    86
    Необходимо добавить функционал CRUD для уже созданной таблицы с данными. Делая добавление новой записи с удивлением для себя обнаружил, что поле id в таблице без AUTO_INCREMENT.

    Соответственно возник вопрос - а как тогда добавлять записи в таблицу? Как-то через пхп высчитывать уникальный id, или можно как-то изменить параметры колонки?

    Или просто сделать экспорт таблицы, поправить её, удалить на продакшене, и сделать импорт исправленной таблицы? Не сломается ли что-то в таком случае?

    Думаю это довольно распространенная проблема, наверняка есть какой-то оптимальный способ её решения.
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    нужно перенести таблицу в песочницу (туда где можно не бояться её сломать), просто включить автоинкремент, добавить пару значений и посмотреть что будет.
    Ведь ключи записанных строк нужно сохранить?
     
    Walk нравится это.
  3. Walk

    Walk Активный пользователь

    С нами с:
    7 сен 2008
    Сообщения:
    452
    Симпатии:
    86
    О варианте, чтобы скопировать в тестовую таблицу, и потестировать на ней - не подумал.

    И вариант, которая предложила жена:
    Разумеется.
     
  4. Polli

    Polli Новичок

    С нами с:
    12 сен 2017
    Сообщения:
    13
    Симпатии:
    11
    Дополнение от жены:
    Есть скриптик для установки нужного значения максимального инкремента:
    Нагло сперто отседа.

    По поводу добавления инкремента к полю - сперто отседа. Ссылки оставляю т.к. не сильна в тонкостях английского языка и бывает что-то упускаю.

    Так же, я бы на всякий случай протестировала, правильно ли будет выставлять инкремент значения после ручного добавления в таблицу (т.е. инкремент пользуется внутренним счетчиком, или берет максимальное значение?). Если будет конфликт - то стоит просмотреть остальную программу, есть ли там добавление id вручную и убрать его.
     
    Walk нравится это.
  5. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    это и нужно сделать в первую очередь.