Поздний ответ, я знаю, но это все еще общий вопрос, я хотел бы добавить еще один ответ, который сработал для меня, с использованием только одной строки insert into
, и я думаю, что это прямо, без создания любая новая таблица (поскольку это может быть проблема с разрешениями CREATE TEMPORARY TABLE
):
INSERT INTO invoices (col_1, col_2, col_3, ... etc)
SELECT
t.col_1,
t.col_2,
t.col_3,
...
t.updated_date,
FROM invoices t;
Решение работает для AUTO_INCREMENT
столбца идентификатора, в противном случае вы можете добавить ID
столбец к выражению:
INSERT INTO invoices (ID, col_1, col_2, col_3, ... etc)
SELECT
MAX(ID)+1,
t.col_1,
t.col_2,
t.col_3,
... etc ,
FROM invoices t;
это действительно легко и просто, вы можете обновить что-либо еще в одной строке без какого-либо второго оператора обновления для последующего использования (например: обновить заголовок столбца дополнительным текстом или заменить строку другим), также вы можете конкретно, что именно вы хотите дублировать, если все, то это, если таковые имеются, вы можете сделать это.