У меня есть большое количество строк, которые я хотел бы скопировать, но мне нужно изменить одно поле.
Я могу выбрать строки, которые я хочу скопировать:
select * from Table where Event_ID = "120"
Теперь я хочу скопировать все эти строки и создать новые строки при установке Event_ID
в 155
. Как я могу сделать это?
Это решение, при котором в вашей таблице много полей, и вы не хотите, чтобы все поля печатались пальцами, просто введите необходимые :)
Как скопировать несколько строк в одну и ту же таблицу, где некоторые поля имеют разные значения:
Ваш код:
Общий код сценария:
Упрощенный / сжатый код:
Поскольку при создании временной таблицы используется
TEMPORARY
ключевое слово, оно будет автоматически удалено после завершения сеанса (как предложено @ ar34z).источник
TEMPORARY
ключевое слово для создания временных таблиц. ИспользованиеCREATE TEMPORARY TABLE
автоматически удалит таблицу, когда сессия (серия SQL-запросов) будет завершена. Отбрасывать таблицу не нужно, и она не конфликтует с другими временными таблицами с тем же именем. (например, при живом взломе (что я бы не рекомендовал))ALTER TABLE temporary_table MODIFY <auto_inc_not_null_field> INT;
Тогда обновление первичного ключа до Null не завершится ошибкой.Exception: null value in column <auto_inc_not_null_field> violates not-null constraint
. Я пробовалALTER TABLE temporary_table ALTER COLUMN <auto_inc_not_null_field> DROP NOT NULL;
Допустим, в вашей таблице есть два других столбца: foo и bar
источник
Если у вас есть множество столбцов в вашей таблице и вы не хотите печатать каждый из них, вы можете сделать это, используя временную таблицу, например;
источник
Эй, как насчет копирования всех полей, измените одно из них на одно и то же значение + что-то еще.
??????????
источник
Пока Event_ID является Integer, делайте это:
источник