Mam dużą liczbę wierszy, które chciałbym skopiować, ale muszę zmienić jedno pole.
Mogę wybrać wiersze, które chcę skopiować:
select * from Table where Event_ID = "120"
Teraz chcę, aby skopiować wszystkie te wiersze i tworzyć nowe wiersze podczas ustawiania Event_ID
się 155
. Jak mogę to osiągnąć?
Jest to rozwiązanie, w którym masz wiele pól w tabeli i nie chcesz, żebyś miał skurcze palca po wpisaniu wszystkich pól, wystarczy wpisać te potrzebne :)
Jak skopiować niektóre wiersze do tej samej tabeli, przy czym niektóre pola mają różne wartości:
Twój kod:
Ogólny kod scenariusza:
Kod uproszczony / skrócony:
Ponieważ tworzenie tabeli tymczasowej używa
TEMPORARY
słowa kluczowego, zostanie ona automatycznie usunięta po zakończeniu sesji (jak sugeruje @ ar34z).źródło
TEMPORARY
słowo kluczowe do tworzenia tabel tymczasowych. UżycieCREATE TEMPORARY TABLE
spowoduje automatyczne upuszczenie tabeli po zakończeniu sesji (serii zapytań SQL). Upuszczenie tabeli nie byłoby konieczne i nie powoduje konfliktu z innymi tabelami tymczasowymi o tej samej nazwie. (np. podczas hakowania na żywo (czego nie poleciłbym))ALTER TABLE temporary_table MODIFY <auto_inc_not_null_field> INT;
Wówczas aktualizacja klucza podstawowego do Null nie zakończy się niepowodzeniem.Exception: null value in column <auto_inc_not_null_field> violates not-null constraint
. PróbowałemALTER TABLE temporary_table ALTER COLUMN <auto_inc_not_null_field> DROP NOT NULL;
Powiedzmy, że twoja tabela ma dwie inne kolumny: foo i bar
źródło
Jeśli masz mnóstwo kolumn w tabeli i nie chcesz wpisywać każdej z nich, możesz to zrobić przy użyciu tabeli tymczasowej, takiej jak;
źródło
Hej, co powiesz na skopiowanie wszystkich pól, zmień jedno z nich na tę samą wartość + coś innego.
??????????
źródło
Tak długo, jak Event_ID jest liczbą całkowitą, wykonaj następujące czynności:
źródło