Đây là một giải pháp trong đó bạn có nhiều trường trong bảng của mình và không muốn bị chuột rút khi gõ tất cả các trường, chỉ cần nhập những trường cần thiết :)
Cách sao chép một số hàng vào cùng một bảng, với một số trường có các giá trị khác nhau:
- Tạo một bảng tạm thời với tất cả các hàng bạn muốn sao chép
- Cập nhật tất cả các hàng trong bảng tạm thời với các giá trị bạn muốn
- Nếu bạn có trường tăng tự động, bạn nên đặt nó thành NULL trong bảng tạm thời
- Sao chép tất cả các hàng của bảng tạm thời vào bảng gốc của bạn
- Xóa bảng tạm thời
Ma cua ban:
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
Mã kịch bản chung:
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
Mã đơn giản / cô đọng:
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;
Khi tạo bảng tạm thời sử dụng TEMPORARY
từ khóa, nó sẽ tự động bị hủy khi phiên kết thúc (như @ ar34z đề xuất).