Nhiều cập nhật trong mysql

Tôi vừa thử nghiệm điều này và phương thức INSERT là 6. Đối với tôi nhanh gấp 7 lần so với phương thức GIAO DỊCH. Tôi đã thử trên một bộ gồm cả 3.000 và 30.000 hàng

Phương thức TRANSACTION vẫn phải chạy từng truy vấn riêng lẻ, điều này làm mất thời gian, mặc dù nó xử lý hàng loạt kết quả trong bộ nhớ hoặc thứ gì đó trong khi thực thi. Phương thức GIAO DỊCH cũng khá tốn kém trong cả nhật ký sao chép và truy vấn

Tệ hơn nữa, phương pháp CASE là 41. Chậm hơn 1 lần so với phương thức INSERT với 30.000 bản ghi (6. Chậm hơn 1 lần so với GIAO DỊCH). Và chậm hơn 75 lần trong MyISAM. Các phương thức INSERT và CASE hòa vốn ở ~1.000 bản ghi. Ngay cả ở 100 bản ghi, phương thức CASE vẫn nhanh hơn

Vì vậy, nói chung, tôi cảm thấy phương pháp INSERT là tốt nhất và dễ sử dụng nhất. Các truy vấn nhỏ hơn và dễ đọc hơn và chỉ chiếm 1 truy vấn hành động. Điều này áp dụng cho cả InnoDB và MyISAM

công cụ thưởng

Giải pháp cho vấn đề INSERT non-default-field là tạm thời tắt các chế độ SQL có liên quan.


4. Đảm bảo lưu

5 trước nếu bạn định hoàn nguyên nó

Đối với các nhận xét khác mà tôi đã thấy nói rằng auto_increment tăng lên khi sử dụng phương thức INSERT, đây có vẻ là trường hợp trong InnoDB, nhưng không phải MyISAM

Lưu ý. "Đã sửa - Tôi quên gửi giá trị cũ của mình đến tệp Lưu. php để $ id không bao giờ biết những gì sẽ cập nhật"

Hỏi ngày 13 tháng 4 năm 2012 lúc 12. 18 13 Tháng tư 2012 lúc 12. 18

Nhiều cập nhật trong mysql

Drmzindecdrmzindec Drmzindec

8042 Huy hiệu vàng15 Huy hiệu bạc28 Huy hiệu đồng2 huy hiệu vàng15 huy hiệu bạc28 huy hiệu đồng

10

Bạn chỉ có thể chạy hai truy vấn thay đổi cả hai tên


Nếu bạn muốn thực hiện nó trong một chuỗi, bạn có thể thực hiện điều này với nhiều truy vấn, truy vấn được tham gia hoặc quy trình được lưu trữ

Nhiều truy vấn trong một chuỗi


Tham gia truy vấn


Nếu không có công việc nào ở trên, tôi khuyên bạn nên thay đổi bảng để không có tên phù hợp mà là ID phù hợp

Bạn sẽ nhận được như sau

Categories Table -
id | category_name
1  : basic
2  : midlevel
3  : highlevel
4  : profesional

Product Table - 
id | category_ID | product
1  : 1           : adsl 1G
2  : 2           : adls 2G
3  : 3           : adsl 3G
4  : 3           : adsl 4G

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12. 23 13 Tháng tư 2012 lúc 12. 23

7

UPDATE Categories t1 
JOIN Product t2 ON (t1.category_name  = t2.category_name ) 
SET t1.category_name = ?
    t1.category_name = ?
WHERE t1.id = ?

Nhưng bạn đang cảm thấy rằng mô hình dữ liệu của bạn là xấu xí. Có thể tốt hơn để khử chuẩn hóa

Có bảng sản phẩm tham khảo bảng danh mục

Product Table - 
id | product | category_ID

Categories Table -
id | category_name

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12. 23 13 Tháng tư 2012 lúc 12. 23

Nhưng bạn đang cảm thấy rằng mô hình dữ liệu của bạn là xấu xí. Có thể tốt hơn để khử chuẩn hóa. Konerak

Có bảng sản phẩm tham khảo bảng danh mục. 12 huy hiệu vàng96 huy hiệu bạc117 huy hiệu đồng

0

Konerakkonerak

38. 7K12 Huy hiệu vàng 96 Huy hiệu bạc 117 Huy hiệu đồng

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
0

Tôi khuyên bạn nên liên kết bảng sản phẩm của mình với bảng danh mục bằng cách sử dụng trường 'ID' của bảng danh mục. Bằng cách này, bạn sẽ được liên kết với cùng một danh mục và có thể thay đổi tên danh mục mà không sợ bị phá vỡ bất cứ điều gì khác, bởi vì bạn vẫn sẽ liên kết với cùng một danh mục ID

Xem xét những điều sau

Cách bạn hiện đang làm, nó giống như rất khó duy trì, bởi vì bạn có thể cần thêm một cột khác trong tương lai sử dụng một danh mục theo một cách nào đó và phải tiếp tục thay đổi cột 'Tên_danh mục' . Bằng cách liên kết với ID, bạn có thể thực hiện bất kỳ thay đổi nào bạn thích trong bảng danh mục mà không lo lắng rằng bạn sẽ mất liên kết với bất kỳ bảng nào khác (đó là những điều sẽ xảy ra với các bảng . 13 Tháng tư 2012 lúc 12. 24

CHỈNH SỬA. Bạn có thể nhận được bất kỳ thông tin nào về các danh mục bằng cách sử dụng các kết nối như tham gia bên trong. Tôi nghĩ đây sẽ là một cách tiếp cận tốt hơn. Ngoài ra, hãy xem thêm các mối quan hệ giữa cột 'Category_id' trong bảng Sản phẩm với cột 'ID' trong bảng danh mục. Điều này sẽ đảm bảo một điều rằng danh mục sẽ không bị xóa khi vẫn còn các sản phẩm được liên kết với nó. Frank

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12. 245 huy hiệu bạc15 huy hiệu đồng

thẳng thắn

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
1

6645 Huy hiệu bạc15 Huy hiệu Đồng

Khi nào bạn có một mối quan hệ như các sản phẩm và danh mục mà bạn đã đề cập, tốt hơn hết là có cấu trúc như sau. 13 Tháng tư 2012 lúc 12. 25

Vì vậy, bất cứ khi nào bạn cần hiển thị tên danh mục cho một sản phẩm, bạn có thể làm điều đó bằng cách sử dụng tham gia. Vì vậy, thay đổi này sẽ cho phép bạn giải quyết vấn đề của mình. Prabhuram

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12. 259 huy hiệu bạc15 huy hiệu đồng

Bohhuramprabhuram

1. 2889 huy hiệu bạc15 huy hiệu đồng

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
1

I don't know at sao you have

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
7 trong cả hai bảng, nó lộn xộn như vô nghĩa theo như tôi thấy

Lý tưởng nhất là cấu trúc bảng của bạn nên như thế này

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
1

Điều này cho phép bạn thay đổi tên của danh mục trong bảng danh mục mà không cần thay đổi bất cứ điều gì trong bảng sản phẩm. 13 Tháng tư 2012 lúc 12. 26

Tất cả những gì bạn cần làm là tham gia 2 bảng trong truy vấn lựa chọn của bạn, ví dụ. Nick

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12. 262 huy hiệu vàng29 huy hiệu bạc47 huy hiệu đồng

2

Biệt danh

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
2

http. //php. mạng/thủ công/en/mysqli. đa truy vấn. php

6. 2782 Huy hiệu vàng29 Huy hiệu bạc47 Huy hiệu đồng 2 Tháng 3, 2016 lúc 9. 22

1

Please try this thing hy vọng nó sẽ giúp

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
3

Đã trả lời ngày 2 tháng 3 năm 2016 lúc 9. 22 Ngày 4 tháng 5 năm 2015 lúc 12. 58

1

Vâng, tôi đã từng gặp phải vấn đề này là tốt. This is manh mối. Vui lòng thử cái này,

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
4

Đã trả lời ngày 4 tháng 5 năm 2015 lúc 12. 58 29 tháng 4, 2020 lúc 10. 31

Đơn giản sử dụng mã bên dưới, hy vọng điều này phù hợp với bạn. flochristos

Đã trả ngày 29 tháng 4 năm 2020 lúc 10. 313 huy hiệu bạc13 huy hiệu đồng

2

Bạn có thể cập nhật trên nhiều bảng trong MySQL không?

Trong MySQL, chúng tôi có thể cập nhật nhiều bảng trong một truy vấn cập nhật. Trong truy vấn bên dưới, cả hai bảng 'Đơn hàng' và 'chi tiết đơn hàng' đều được cập nhật cùng một lúc. chúng tôi có thể cập nhật nhiều bảng trong một truy vấn CẬP NHẬT duy nhất . Trong truy vấn bên dưới, cả hai bảng 'order' và 'order_detail' đều được cập nhật cùng một lúc.

Làm cách nào để cập nhật nhiều bản ghi trong MySQL?

Có một vài cách để làm điều đó. Chèn vào các giá trị của học sinh (ID, SCORE1, SCORE2) (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) trên bản cập nhật INSERT INTO students (id, score1, score2) VALUES (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) ON DUPLICATE KEY UPDATE score1 = VALUES(score1), score2 = VALUES(score2);

Làm thế nào để bạn sử dụng nhiều bảng trong truy vấn cập nhật?

Sử dụng bảng đối tượng của SQLalchemy, có thể chỉ được định nghĩa nhiều hơn một bảng trong phương thức định mệnh Cập nhật (). PostgreSQL và Microsoft SQL Server hỗ trợ các câu lệnh cập nhật đề cập đến nhiều bảng. Điều này thực hiện cập nhật trên mạng từ cú pháp của nhóm, nơi cập nhật một bảng tại một thời điểm