|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.10.2015, 18:01 | #1 |
Пользователь
Регистрация: 26.07.2008
Сообщений: 17
|
Как одним запросом добавить копию записи в таблицу?
В Access 2003 запрос на добавление работал, а при переходе на 2010 не хочет, "жалуется" на не уникальность ключевого поля.
Я знаю, что эту проблему можно решить двумя-тремя запросами: - копировать нужную запись из исходной таблицы во временную таблицу; - изменить ключевое поле временной таблицы на (DMax + 1); - добавить исправленную временную таблицу (одна запись) в исходную таблицу. Как-то очень громоздко, Вы не находите? Есть ли хитрый трюк, который бы одним запросом на добавление таблицы обманул упрямый компьютер? |
27.10.2015, 19:03 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если ключевое поле в приемнике инкрементное, то убрать из списка SELECT. Иначе там должно быть уникальное значение. И не важно 2010 или 2003
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
27.10.2015, 19:29 | #3 |
Пользователь
Регистрация: 26.07.2008
Сообщений: 17
|
Завтра надо будет попробовать убрать это поле из SELECT
В любом случае - большое спасибо! |
28.10.2015, 09:52 | #4 |
Пользователь
Регистрация: 26.07.2008
Сообщений: 17
|
Убрал ключевое поле из SELECT, опишу результат:
запрос на добавление срабатывает - все обычные поля копируются, а ключевое поле автоматически получает первое бОльшее уникальное значение. Всё О.К., а где же ложка дёгтя? Вот и она... При повторных попытках - запрос перестаёт работать ("жалуется" на не уникальность) до тех пор пока я не сжимаю базу. После сжатия - один нормальный запуск гарантирован. И опять, и по кругу: - добавление - сжатие - добавление - сжатие - Есть ли у кого-нибудь какие-нибудь предложения по выходу из замкнутого круга? |
28.10.2015, 10:22 | #5 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Такого не может быть, прикрепите сюда базу и запрос, и покажем где у вас ошибка.
|
28.10.2015, 10:28 | #6 |
Пользователь
Регистрация: 26.07.2008
Сообщений: 17
|
База у меня очень большая, делалась годами и продолжает развиваться...
Я попробую сделать маленький демо-вариант, если получится - его пришлю. Большое спасибо за внимание. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как переименовать таблицу SQL запросом? | Dux | SQL, базы данных | 9 | 03.02.2015 17:00 |
Подсчет одним запросом. Возможно ли? | Majestio | SQL, базы данных | 8 | 28.10.2014 15:54 |
выборка одним запросом | limon142 | PHP | 1 | 25.05.2014 20:18 |
Добавить строку в longtext одним Update запросом | Alar | SQL, базы данных | 1 | 02.02.2011 18:11 |
BETWEEN и LIKE одним запросом | Pinya | SQL, базы данных | 9 | 19.08.2008 11:30 |