как вставить данные в таблицу?

есть ли способ вставить новую строчку так, чтобы значения некоторых столбцов повторились с предыдущей строчки? то есть необходимо всткавить не все значения сразу, а лишь некоторые, а остальные данные должны остаться с предыдущей записи.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Простым способом такое

Простым способом такое сделать нельзя. Объясняю почему.
Вы пишите "от предыдущей записи", но записи в таблице не хранятся в каком-либо упорядоченном виде. Если вы несколько раз сделаете

SELECT * FROM TABLE;

то совсем не факт, что вы получите каждый раз один и тот же порядок строк. И уж во всяком случае стандарт SQL не гарантирует незменный порядок строк, если только в SELECT явно не используется ORDER BY. Таким образом, первая проблема - при простой вставке невозможно определить какая запись была предыдущей.

В общем единственный способ, который может вам помочь - это создание триггера, срабатывающего при INSERT. Функция, вызываемая триггером должна сохранять необходимые для будущей вставки значения полей (например в какой-либо служебной таблице), если их там нет (или по какому-либо условию) и соотвественно брать их из этой служебной таблицы при вставке новой записи.

Спасибо. Еще подумаю

Спасибо. Еще подумаю

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023