Bu, tablonuzda birçok alanın bulunduğu ve tüm alanları yazarak bir parmak krampı almak istemediğiniz bir çözümdür, sadece gerekli olanları yazın :)
Bazı satırlar farklı değerlere sahip olacak şekilde bazı satırları aynı tabloya kopyalama:
- Kopyalamak istediğiniz tüm satırları içeren geçici bir tablo oluşturun
- Geçici tablodaki tüm satırları istediğiniz değerlerle güncelleyin
- Otomatik artış alanınız varsa, geçici tabloda NULL olarak ayarlamanız gerekir
- Geçici tablonun tüm satırlarını orijinal tablonuza kopyalayın
- Geçici tabloyu silme
Senin kodun:
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
Genel senaryo kodu:
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
Basitleştirilmiş / yoğunlaştırılmış kod:
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;
Geçici tablonun oluşturulması TEMPORARY
anahtar kelimeyi kullandığından , oturum bittiğinde otomatik olarak bırakılır (@ ar34z önerdiği gibi).