есть ли способ вставить новую строчку так, чтобы значения некоторых столбцов повторились с предыдущей строчки? то есть необходимо всткавить не все значения сразу, а лишь некоторые, а остальные данные должны остаться с предыдущей записи.
Простым способом такое сделать нельзя. Объясняю почему.
Вы пишите "от предыдущей записи", но записи в таблице не хранятся в каком-либо упорядоченном виде. Если вы несколько раз сделаете
SELECT*FROMTABLE;
то совсем не факт, что вы получите каждый раз один и тот же порядок строк. И уж во всяком случае стандарт SQL не гарантирует незменный порядок строк, если только в SELECT явно не используется ORDER BY. Таким образом, первая проблема - при простой вставке невозможно определить какая запись была предыдущей.
В общем единственный способ, который может вам помочь - это создание триггера, срабатывающего при INSERT. Функция, вызываемая триггером должна сохранять необходимые для будущей вставки значения полей (например в какой-либо служебной таблице), если их там нет (или по какому-либо условию) и соотвественно брать их из этой служебной таблицы при вставке новой записи.
Простым способом такое
Простым способом такое сделать нельзя. Объясняю почему.
Вы пишите "от предыдущей записи", но записи в таблице не хранятся в каком-либо упорядоченном виде. Если вы несколько раз сделаете
то совсем не факт, что вы получите каждый раз один и тот же порядок строк. И уж во всяком случае стандарт SQL не гарантирует незменный порядок строк, если только в SELECT явно не используется ORDER BY. Таким образом, первая проблема - при простой вставке невозможно определить какая запись была предыдущей.
В общем единственный способ, который может вам помочь - это создание триггера, срабатывающего при INSERT. Функция, вызываемая триггером должна сохранять необходимые для будущей вставки значения полей (например в какой-либо служебной таблице), если их там нет (или по какому-либо условию) и соотвественно брать их из этой служебной таблицы при вставке новой записи.
Спасибо. Еще подумаю
Спасибо. Еще подумаю