Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.12.2010, 16:29
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
Вопрос Как дублировать строку в таблице

Добрый день.
Есть таблица с 80 полями. Уникальный ключ — ID (автоинкремент).
Нужно взять запись по известному ID и дублировать ее в этой же таблице, получив новый ID.

Посоветуйте как реализовать.

P.S. БД : MySQL
Ответить с цитированием
  #2  
Старый 16.12.2010, 16:39
Аватар для Delphist
Delphist Delphist вне форума
Новичок
 
Регистрация: 10.12.2010
Адрес: Курган
Сообщения: 68
Репутация: 6002
По умолчанию

Я не знаю как это выполнить на SQL, зато знаю как программно из дельфи. Ты к какой базе конектишся и через что?
Ответить с цитированием
  #3  
Старый 16.12.2010, 16:44
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Код:
insert into tour.countrys (country)
  select country
    from tour.countrys
    where id=1
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #4  
Старый 16.12.2010, 16:49
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
Сообщение

Цитата:
Сообщение от Delphist
Я не знаю как это выполнить на SQL, зато знаю как программно из дельфи. Ты к какой базе конектишся и через что?
БД MySQL + UniDac
Ответить с цитированием
  #5  
Старый 16.12.2010, 17:00
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
По умолчанию

Цитата:
Сообщение от Black Raider
Код:
insert into tour.countrys (country)
  select country
    from tour.countrys
    where id=1
Спасибо. но так если дублировать все поля получится и дублирование ID что вызовет ошибку.
Ответить с цитированием
  #6  
Старый 16.12.2010, 17:03
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

а где вы там увидели ID в запросе?
у меня тоже в этой таблице ID автоинкремент соответственно при вставке остальных полей (кроме ID его в список вставляемых и в селект не включаем), получим такую же запись как и ту с которой берем только с новой IDшкой
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #7  
Старый 16.12.2010, 17:05
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

перефразирую запрос:
Insert into TableName (Field1,Field2,Field3,Fieldn)
Select Field1,Field2,Field3,Fieldn
from TableName
where ID=IDValue

где IDValue-ID которое надо дублировать
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #8  
Старый 16.12.2010, 17:11
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
Сообщение

Цитата:
Сообщение от Black Raider
а где вы там увидели ID в запросе?
у меня тоже в этой таблице ID автоинкремент соответственно при вставке остальных полей (кроме ID его в список вставляемых и в селект не включаем), получим такую же запись как и ту с которой берем только с новой IDшкой
Просто я сделал так :
Код:
insert into table_name
  select *
from table_name
  where id=1
а то описывать 80 полей не очень удобно да и структура таблицы будет изменяться.
Ответить с цитированием
  #9  
Старый 16.12.2010, 17:35
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Вам по любому придется их так или иначе описывать.
Впрочем как знаете... запрос если из программы (скритпа пхп или чего то такого) то его можно формировать динамически, а поля например хранить в ini или txt файле и брать от туда.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:51.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025