У меня есть процедура, которая в какой-то момент делает копию строки из tableA
+ несколько полей tableB
так:порядок Oracle столбец (динамически?)
INSERT INTO tableB
SELECT a.*, 'field1', 'field2'
FROM tableA a
WHERE a.id = myId
Проблема возникла, когда я должен был добавить новая колонка до tableA
. Если я добавлю столбец в tableA
, он будет добавлен в качестве последнего столбца, что сделает эту процедуру недействительной, потому что число столбцов не совпадает. Чтобы этот сценарий имел смысл, я должен добавить новый столбец от tableA
до tableB
. Я могу написать все столбцы вручную, но есть много столбцов, и я ищу что-то более пригодное для обслуживания
Есть ли способ добавить новый столбец в tableB
в определенном положении? Если это невозможно, есть ли способ выбрать каждый столбец из tableA
, кроме нового (поэтому я могу выбрать его как последний для tableB
)? А если нет, то как я могу автоматизировать выбор/вставку столбцов?
Благодаря
Пожалуйста, добавьте скрипты в таблицу с этими вопросами. –
В SQL, о котором я знаю, нет никакого способа, который позволит вам выбрать каждый столбец, кроме указанных. Рассмотрите возможность использования триггеров событий для автоматического создания столбца в 'tableB'. Если вы хотите, чтобы работа по техническому обслуживанию выполнялась вручную, создайте список столбцов «tableA» один раз и поместите их в свою обработку процедур, добавив новый столбец в «tableB», когда будут сделаны некоторые изменения в структуре «tableA» –
@Md. ShamimAlMamun Извините, это код с работы, я не могу добавить определения таблиц. Полезна ли какая-то конкретная часть скриптов таблицы? –