-
> [19] Дмитрий (14.10.14 17:58)
- Нельзя переходить дорогу на красный свет.
- Отчего ж нельзя, в случае чего просто собьёт машина.
-
>Дмитрий (14.10.14 17:58) [19]
а, вы из упорных
тогда можно)
-
А вот теперь я вижу что правда не так понял что нужно. И присоединяюсь что так делать нельзя.
То что я ранее писал только для исправления повредившихся данных. А обычно на значение id записи не обращают внимания, и уж точно не добиваются конкретных значений. Это просто любое уникальное число. По нему обычно не фильтруют, не сортируют, только связывают данные.
Поясните что есть:
"новая форма"
"старая форма"
"изделие"
"слой"
"двухслойная генерация"
А так же зачем именно влиять на порядок id. Какая разница на их величину и подряд ли они или вразнобой?
-
в общем-то, плевать на величину, подряд они или "вразнобой"
первый вопрос в том, чтобы диапазоны id не пересекались
второй вопрос в возможности вставить сгенерированный id в несколько полей сразу.
причина желания в том,
что бд изначально была на акцессе,
моя задача перевести ее (в фоновом режиме) на mysql без остановки производственного процесса,
в том числе, продолжая добавлять новый функционал, требуемый руководством
в настоящее время, некоторые таблицы дублируются в акцессе и мускуле
новые поля добавляются в дополнительные мускульные таблицы
в старой форме при сохранении записи происходит дублирование из акцесса в мускул
в старой форме генерация id записи об изделии берется из акцесса
в новой форме генерация id берется из мускула
при одновременной попытке использовать обе формы (что потребуется в процессе тестового периода использования новой формы) неизбежно будет случаться накладка, когда один и тот же id изделия в акцессе и в мускуле привязан к разным заказам, с затиранием в процессе сохранения
при отсутствии других вариантов думаю вынести генерацию в диапазоне от 0 до 1'000'000 (условно) в доп.таблицу.
-
>при одновременной попытке использовать обе формы (что потребуется в >процессе тестового периода использования новой формы)
введите доп. поле-флаг (0/1): старая/новая форма.
если форм несколько, введите поле id-формы.
ID оставьте автоинкрементом и не вспоминайте о нём, пока не понадобится добавлять ограничения ссылочной целостности.
-
и как мне поможет поле-флаг?
менеджер вместо добавленного им изделия,
обнаружит какую-то хрень, добавленую его начальником или мной в процессе тестирования
потому, что в разных формах были сгенерированы одинаковые id
и более поздняя запись была автоматически продублирована в акцесс, затерев раннюю
-
>в старой форме при сохранении записи происходит дублирование из акцесса в мускул
признак "запись из Access" пишется в доп. поле
-
допустим, что таким образом синхроннизацию таблиц я отключу
что дальше с этими записями делать?
их только удалить,
нормальный рабочий процесс с ними будет не возможен
-
>Дмитрий (16.10.14 15:50) [27]
>нормальный рабочий процесс с ними будет не возможен
мне задание на дом: угадать, почему невозможен?
уже две страницы из вас вытягивают информацию - но вы же партизан
опишите, что и в какой последовательности у вас происходит
-
Да, нужно подробнее. Может удобнее сделать две отдельные таблицы для mysql и access, а после сделать view. Ну или в одну и там дополнительные колонки original_id и db_id.
-
таблиц не две, а больше
две таблицы: заказы и изделия (соотношение 1:М) имеются и в акцесс, и в мускуле
и должны быть синхронизированы
кроме этих двух таблиц имеются еще несколько таблиц (только в мускуле) связанные с т.изделия по id
* контроль (даты стадий производства) - (соотношение 1:1)
* компоненты - (соотношение 1:М)
...
к этому имеется изыск со связью т. размеры по полю sizeID,
которое может быть как равно id текущей записи, так и не равно
на акцессных таблицах основана пачка отчетов и печатных форм
основная моя линия - замена операций добавления-модификации-удаления акцессных таблиц соответствующими операциями с мускульными таблицами
с последующей синхронизацией во второй базе
в дальнейшем, планирую заменить в акцесс таблицы ссылками (связанные таблицы из одбс-источника) на аналогичные в мускуле
-
умываю руки
успехов
-
программиста вам нужно...
но если суть "извратится" то - в access id автоинкремент с 1 (если не менялось дефайлтное), в mysql сделать id автоинкремент начиная с -maxint (минус максинт). вуаля. пересекаться не будут.
-
спаси вас бог, добрые люди