@petriychuk

Можно ли прописать в поле sql что б по умолчанию копирувалось значения с предыдущей строки?

То есть если я передаю в определенный столбец значения оно записывает если пестое то берет значения из предыдущей строчки. Можно ли это сделать в sql чтоб не делать из php отдельный запрос?
  • Вопрос задан
  • 2279 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Можно с помощью триггера.

Для примера возьмем простую таблицу:
CREATE TABLE `test` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `some_field` CHAR(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
);


Нам необходимо, чтоб при попытке вставки значения "NULL", оно заменялось на значение последнего вставленного ранее элемента.
Для данной таблицы триггер будет выглядеть следующим образом:
DELIMITER |
CREATE TRIGGER `set_default_value_from_last_row` BEFORE INSERT ON `test` FOR EACH ROW 

BEGIN
    IF (NEW.`some_field` IS NULL) THEN
        SET NEW.`some_field` = (SELECT `some_field` FROM `test` WHERE `id` = (SELECT MAX(`id`) FROM `test`));
    END IF;
END;|
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы