Это решение, при котором в вашей таблице много полей, и вы не хотите, чтобы все поля печатались пальцами, просто введите необходимые :)
Как скопировать несколько строк в одну и ту же таблицу, где некоторые поля имеют разные значения:
- Создайте временную таблицу со всеми строками, которые вы хотите скопировать
- Обновите все строки во временной таблице нужными значениями.
- Если у вас есть поле автоинкремента, вы должны установить его во временную таблицу как NULL
- Скопируйте все строки временной таблицы в исходную таблицу.
- Удалить временную таблицу
Ваш код:
CREATE table temporary_table AS SELECT * FROM original_table WHERE Event_ID="155";
UPDATE temporary_table SET Event_ID="120";
UPDATE temporary_table SET ID=NULL
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
Общий код сценария:
CREATE table temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
UPDATE temporary_table SET <auto_inc_field>=NULL;
INSERT INTO original_table SELECT * FROM temporary_table;
DROP TABLE temporary_table
Упрощенный / сжатый код:
CREATE TEMPORARY TABLE temporary_table AS SELECT * FROM original_table WHERE <conditions>;
UPDATE temporary_table SET <auto_inc_field>=NULL, <fieldx>=<valuex>, <fieldy>=<valuey>, ...;
INSERT INTO original_table SELECT * FROM temporary_table;
Поскольку при создании временной таблицы используется TEMPORARY
ключевое слово, оно будет автоматически удалено после завершения сеанса (как предложено @ ar34z).