Может у кого-то есть идеи как это просто, надёжно и раз инавсегда сделать
имеющимися средствами?
Я ничего подходящего не нашёл, поэтому предлагаю вынести на суд
общественности новую фичу - команду COPY для будущих версий FB.
Предлагаю такой синтаксис:
COPY INTO <destination_table_or_view>
FROM <source_table_or_view>
[WITH REPLACE OPTION]
[DEFAULT (<список полей>) ]
[CHANGE
destination_field_1 = source_field_x,
destination_field_2 = <expression>,
destination_field_3 = :<variable>
]
[WHERE <source_table_or_view_condition> ]
Работает так:
1) По умолчанию генерирует коману типа INSERT INTO
<destination_table_or_view> SELECT * FROM <source_table_or_view_or_query>,
2) WITH REPLACE OPTION значает что скопированные записи нужно удалить из
source_table_or_view
3) DEFAULT - это список полей, которым должно быть задано значение
DEFAULT, указнное при описании поля таблицы
4) CHANGE - это список переопределений стандартного копирования. Например
я могу какому-то полю присвоить при копировании значение поля с другим
именем, или выражения, или ещё чего-то там что понадобится
5) WHERE - это условие, по которому строится запрос.
Т.е. принцип работы этой команды отличается от остальных. По умолчанию она
работает со всеми полями, но в ней можно задать исключения. Таким образом
можно один раз написать подобную команду и не волноваться что при
добавлении полей в таблицу где-то что-то забыл исправить.
кто мешает выдумать тебе порох непромокаемый? (с)
хорошо поставленная задача требует только компиляции. кто мешает лично Вам
забабахать это на паскале?
--
Булычев Алексей
http://www.stella-npf.ru