powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / ?create table t1 as select * from t2 where 1=2
12 сообщений из 12, страница 1 из 1
?create table t1 as select * from t2 where 1=2
    #33568791
Dimka08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возможно ли реализовать чтото подобное?
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33568949
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimka08возможно ли реализовать чтото подобное?
нужна именно постоянная таблица?
Если нет, то для временной
Код: plaintext
select * from t2 where  1 = 2  into temp t1 [WITH NO LOG];
Для полстоянной в IDS 7.31 только с привлечением :
1) Что-то для получения скрипта существующей таблицы - dbschema, eSQLEditor, SQL Explorer, свой скрипт/ХП по сиситемнім таблицам :)
2) Что-то для запуска этого скрипта - dbaccess, eSQLEditor, SQL Explorer, своя программа :)
3) Извраты через
Код: plaintext
system
не рассматривал :)
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33569568
zefs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimka08возможно ли реализовать чтото подобное?

Почему не
create view t1 as select * from t2 where 1=2

и вообще, опишите проблему подробнее!!!
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33569696
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю, что человеку просто нужно сделать дубликат таблицы (сотворить ещё одну таблицу, которая будет иметь тот же состав полей и поля будут иметь тот тип данных, что и в исходной таблице).

Сдается мне, товарищ пришел из Oracle. Там такое работает на ура...
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33569701
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимор КоневПодозреваю, что человеку просто нужно сделать дубликат таблицы (сотворить ещё одну таблицу, которая будет иметь тот же состав полей и поля будут иметь тот тип данных, что и в исходной таблице).

Сдается мне, товарищ пришел из Oracle. Там такое работает на ура...Мой предыдущей ответ в большей степени адресовался Зефсу, чем автору топика.
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33569733
Dimka08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимор КоневПодозреваю, что человеку просто нужно сделать дубликат таблицы (сотворить ещё одну таблицу, которая будет иметь тот же состав полей и поля будут иметь тот тип данных, что и в исходной таблице).

Сдается мне, товарищ пришел из Oracle. Там такое работает на ура...
сокращенный дубликат +одно вычисляемое поле
нужна нормальная таблица не темповая и не вью
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33570349
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пойму зачем это надо. Явная попытка решить задачу через ж.... Сомневаюсь, что это регулярная операция, требующая автоматизациия и предназначеня для выполнения юзерами. Самый простой способ для выполнения администратором, если в таблице много полей:
1. dbschema -d database -t t2 oldtable.sql
2. Добавляем новое поле в oldtable.sql и создаем новую таблицу.
3. Переносим записи из t2 в новую таблицу. В зависимости от количества записей разными способами, дабы не упереться в Long Transaction.
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33570453
Dimka08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaugavaНе пойму зачем это надо. Явная попытка решить задачу через ж.... Сомневаюсь, что это регулярная операция, требующая автоматизациия и предназначеня для выполнения юзерами. Самый простой способ для выполнения администратором, если в таблице много полей:
1. dbschema -d database -t t2 oldtable.sql
2. Добавляем новое поле в oldtable.sql и создаем новую таблицу.
3. Переносим записи из t2 в новую таблицу. В зависимости от количества записей разными способами, дабы не упереться в Long Transaction.
напрмер есть 100 таблиц надо создать 100 аналогичных но без некоторых полей
+ если есть определенное поле то его надо заменить на другое
+ во все таблицы добавить поле
конечно можно все перенести и вручную
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33570462
Dimka08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Daugava3. Переносим записи из t2 в новую таблицу. В зависимости от количества записей разными способами, дабы не упереться в Long Transaction.
и еще вопрос если надо перенести например 100-500к записей
из одной таблицы в другую как это лучще сделать
одним инсертом или в цикле
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33571550
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз, раскажите мне задачу, в которой хотя бы ежедневно требуется из 100 таблиц создавать 100 аналогичных без нескольких полей.
Реализуемо сие через dbschema - парсинг скриптом. Можно также реализовать и на SQL (но это значительно более геморройно, если не найти готовых экзампл, собирающий по системным таблицам структуру), который потом выполнить через DATABLADE.
На счет как закачивать, тоже вопрос. Все зависит от вашей системы, для кого-то 1000 записей много, для кого-то ежеминутные закачки по 10000 в порядке вещей.
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33571586
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimka08 DaugavaНе пойму зачем это надо. Явная попытка решить задачу через ж.... Сомневаюсь, что это регулярная операция, требующая автоматизациия и предназначеня для выполнения юзерами. Самый простой способ для выполнения администратором, если в таблице много полей:
1. dbschema -d database -t t2 oldtable.sql
2. Добавляем новое поле в oldtable.sql и создаем новую таблицу.
3. Переносим записи из t2 в новую таблицу. В зависимости от количества записей разными способами, дабы не упереться в Long Transaction.
напрмер есть 100 таблиц надо создать 100 аналогичных но без некоторых полей
+ если есть определенное поле то его надо заменить на другое
+ во все таблицы добавить поле
Убедились, что операция разовая :)
Для удобства работы и автодокументирования существуют замечательные CASE-средства "типа ERwin", с возможностью реинжиниринга и модификации схемы.
Или использовать уже предложенный вариант работы с чистым SQL-скриптом, формируемым утилитой dbschema и тривиальной операцией "поиск-замена".
...
Рейтинг: 0 / 0
?create table t1 as select * from t2 where 1=2
    #33571600
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimka08 Daugava3. Переносим записи из t2 в новую таблицу. В зависимости от количества записей разными способами, дабы не упереться в Long Transaction.
и еще вопрос если надо перенести например 100-500к записей
из одной таблицы в другую как это лучще сделать
одним инсертом или в цикле
Если уже упомянутое понятие Long Transaction для вас незнакомо, то в цикле с транзакциями (т.е. блок записей - коммит транзакции). Если знаете, как расширить размер логических журналов до нужного размера - можно одним инсертом. Можно почитать FAQ http://www.sql.ru/faq/faq.aspx?id=585 (первые два вопроса) на тему специализированных средств и способов по миграции больших объемов данных.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / ?create table t1 as select * from t2 where 1=2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]