Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng lại các hàng trong bảng mysql mà không tăng tự động

Giải pháp tốt hơn sẽ là đặt một khóa duy nhất trên nguồn cấp dữ liệu (ngoài khóa tăng tự động). Sau đó, sử dụng INSERT ON DUPLICATE KEY UPDATE

INSERT INTO feeds (name, url, etc, etc2, `update_count`) 
    VALUES ('name', 'url', 'etc', 'etc2', 1) 
    ON DUPLICATE KEY UPDATE
        `etc` = VALUES(`etc`),
        `etc2` = VALUES(`etc2`),
        `update_count` = `update_count` + 1;

Lợi ích là bạn không tăng id và bạn vẫn thực hiện nó trong một truy vấn nguyên tử. Thêm vào đó, bạn chỉ cập nhật / thay đổi những gì bạn cần thay đổi. (Lưu ý rằng tôi đã bao gồm update_count để hiển thị cách cập nhật trường) ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php- lấy id chèn cuối cùng

  2. Tôi có thể sử dụng một hàm cho giá trị mặc định trong MySql không?

  3. Mysql Tạo bảng với tên cơ sở dữ liệu động

  4. Sự khác biệt giữa việc sử dụng và bật trong phép nối bảng trong MySQL là gì?

  5. Trả lại khóa ngoại với truy vấn DQL