Конференция "Базы" » Добавление запросом блоками с заданной последовательностью ключа [D7, MySQL]
 
  • Inovet © (14.10.14 19:34) [20]
    > [19] Дмитрий   (14.10.14 17:58)

    - Нельзя переходить дорогу на красный свет.
    - Отчего ж нельзя, в случае чего просто собьёт машина.
  • Кщд © (14.10.14 20:02) [21]
    >Дмитрий   (14.10.14 17:58) [19]
    а, вы из упорных
    тогда можно)
  • DQ (15.10.14 04:34) [22]
    А вот теперь я вижу что правда не так понял что нужно. И присоединяюсь что так делать нельзя.
    То что я ранее писал только для исправления повредившихся данных. А обычно на значение id записи не обращают внимания, и уж точно не добиваются конкретных значений. Это просто любое уникальное число. По нему обычно не фильтруют, не сортируют, только связывают данные.

    Поясните что есть:
     "новая форма"
     "старая форма"
     "изделие"
     "слой"
     "двухслойная генерация"
    А так же зачем именно влиять на порядок id. Какая разница на их величину и подряд ли они или вразнобой?
  • Дмитрий (15.10.14 16:09) [23]
    в общем-то, плевать на величину, подряд они или "вразнобой"
    первый вопрос в том, чтобы диапазоны id не пересекались
    второй вопрос в возможности вставить сгенерированный id в несколько полей сразу.

    причина желания в том,
    что бд изначально была на акцессе,
    моя задача перевести ее (в фоновом режиме) на mysql без остановки производственного процесса,
    в том числе, продолжая добавлять новый функционал, требуемый руководством

    в настоящее время, некоторые таблицы дублируются в акцессе и мускуле
    новые поля добавляются в дополнительные мускульные таблицы
    в старой форме при сохранении записи происходит дублирование из акцесса в мускул
    в старой форме генерация id записи об изделии берется из акцесса
    в новой форме генерация id берется из мускула

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

    при отсутствии других вариантов думаю вынести генерацию в диапазоне от 0 до 1'000'000 (условно) в доп.таблицу.
  • Кщд © (15.10.14 17:26) [24]
    >при одновременной попытке использовать обе формы (что потребуется в >процессе тестового периода использования новой формы)
    введите доп. поле-флаг (0/1): старая/новая форма.
    если форм несколько, введите поле id-формы.
    ID оставьте автоинкрементом и не вспоминайте о нём, пока не понадобится добавлять ограничения ссылочной целостности.
  • Дмитрий (15.10.14 17:55) [25]
    и как мне поможет поле-флаг?
    менеджер вместо добавленного им изделия,
    обнаружит какую-то хрень, добавленую его начальником или мной в процессе тестирования
    потому, что в разных формах были сгенерированы одинаковые id
    и более поздняя запись была автоматически продублирована в акцесс, затерев раннюю
  • Кщд © (15.10.14 19:49) [26]
    >в старой форме при сохранении записи происходит дублирование из акцесса в мускул
    признак "запись из Access" пишется в доп. поле
  • Дмитрий (16.10.14 15:50) [27]
    допустим, что таким образом синхроннизацию таблиц я отключу
    что дальше с этими записями делать?
    их только удалить,
    нормальный рабочий процесс с ними будет не возможен
  • Кщд © (16.10.14 18:22) [28]
    >Дмитрий   (16.10.14 15:50) [27]
    >нормальный рабочий процесс с ними будет не возможен
    мне задание на дом: угадать, почему невозможен?

    уже две страницы из вас вытягивают информацию - но вы же партизан
    опишите, что и в какой последовательности у вас происходит
  • DQ (17.10.14 07:42) [29]
    Да, нужно подробнее. Может удобнее сделать две отдельные таблицы для mysql и access, а после сделать view. Ну или в одну и там дополнительные колонки original_id и db_id.
  • Дмитрий (17.10.14 17:13) [30]
    таблиц не две, а больше
    две таблицы: заказы и изделия (соотношение 1:М) имеются и в акцесс, и в мускуле
    и должны быть синхронизированы
    кроме этих двух таблиц имеются еще несколько таблиц (только в мускуле)  связанные с т.изделия по id
    * контроль (даты стадий производства) - (соотношение 1:1)
    * компоненты - (соотношение 1:М)
    ...

    к этому имеется изыск со связью т. размеры  по полю sizeID,
    которое может быть как равно id текущей записи, так и не равно

    на акцессных таблицах основана пачка отчетов и печатных форм
    основная моя линия - замена операций добавления-модификации-удаления акцессных таблиц соответствующими операциями с мускульными таблицами
    с последующей синхронизацией во второй базе
    в дальнейшем, планирую заменить в акцесс таблицы ссылками (связанные таблицы из одбс-источника) на аналогичные в мускуле
  • Кщд © (17.10.14 20:57) [31]
    умываю руки
    успехов
  • sniknik © (18.10.14 01:45) [32]
    программиста вам нужно...

    но если суть "извратится" то - в access id автоинкремент с 1 (если не менялось дефайлтное), в mysql сделать id  автоинкремент  начиная с -maxint (минус максинт). вуаля. пересекаться не будут.
  • Дмитрий (21.10.14 15:59) [33]
    спаси вас бог, добрые люди
 
Конференция "Базы" » Добавление запросом блоками с заданной последовательностью ключа [D7, MySQL]
Есть новые Нет новых   [134427   +34][b:0][p:0.001]