Мне нужно продублировать строку в SQL, обновить один столбец в старой строке и обновить один столбец в новой строке.
Использование MariaDB / MySQL
| я бы | атрибут | значение | Дата начала | Дата окончания |
|---|---|---|---|---|
| 1 | attribute_x | 0 | 0 | ноль |
| 2 | attribute_y | 1 | 0 | ноль |
Я хочу:
Был одним из тех, кто «не знал, с чего начать». Мой первоначальный подход заключался в том, чтобы получить список идентификаторов строк и выполнить запрос на обновление end_date для этих идентификаторов. Легко, но тогда я не знал, как легко дублировать эти строки, и если бы я знал, как получить идентификаторы новых строк






Это две операции:
update t
set end_date = now()
where attribute = 'attribute_x';
insert into t (attribute, value, start_date, end_date)
select attribute, value, now(), null
from t
where attribute = 'attribute_x';
Спасибо, меня немного смутил там оператор вставки, а именно select attribute, value, now(), null, но думаю, теперь я понял.
Что вы пробовали до сих пор?