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

Doctrine 2 @Gedmo \ Soft Các trường có thể xóa và duy nhất

Bạn có biết "xóa mềm" có nghĩa là gì không? Có nghĩa là mọi thao tác "xóa" sẽ được chuyển đổi thành SQL chỉ đặt một số deleted gắn cờ thành true . Và nếu bạn chèn một hàng khác có cùng giá trị của trường duy nhất có hàng đã xóa mềm, bạn sẽ nhận được thông báo này.

Bạn có hai cách để giải quyết vấn đề này:

  • Tạo chỉ mục duy nhất của bạn với hai cột:trường duy nhất ban đầu của bạn và deleted lá cờ. Sau đó, bạn sẽ chỉ gặp lỗi này khi cố gắng thêm hàng với các giá trị trường duy nhất hiện có chỉ để không bị xóa mềm.
  • Tránh vi phạm điều này:bạn nên loại trừ khả năng thêm hàng trùng lặp với hàng khác trong các trường duy nhất.

Cách thứ hai là cách tiếp cận tốt nhất IMHO.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảo vệ tiêm MySQL và các dấu hiệu lỗ hổng khi sử dụng PHP

  2. mysql tải dữ liệu cục bộ các vấn đề cú pháp trong tệp tin với các trường đã đặt

  3. Làm thế nào để mã PDO này bảo vệ khỏi SQL Injjection?

  4. PHP lấy dữ liệu từ hàng của bảng và lưu trữ vào biến

  5. Hiệu suất MySQL khi cập nhật hàng bằng FK