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

mySQL - Khóa bảng so với khóa hàng

Nếu bạn có chỉ mục trên tblAreas.AreaID, thì bất kỳ giao dịch nào bao gồm WHERE tblAreas.AreaID in (...) sẽ khóa chỉ mục cho những mục nhập đó. Không quan trọng bản thân các hàng có tồn tại hay không. Khóa đó sẽ ngăn một giao dịch khác chèn bất kỳ mục nhập nào cho các ID đó. Vì vậy, tôi không nghĩ bạn cần phải làm một trong hai đề xuất của mình. Chỉ cần truy vấn để xem liệu tất cả các khu vực có sẵn cho lãnh thổ của bạn hay không, bạn sẽ nhận được các khóa cần thiết để chèn trực tiếp lãnh thổ của mình.

Điều này có thể là một chút vấn đề vì ID khu vực của bạn không phải là duy nhất trên toàn trò chơi, vì vậy có thể có một số tuần tự sai giữa các khu vực có cùng ID trong các bản đồ khác nhau. Việc thêm mapID vào bảng tblAreas của bạn có thể hữu ích để bạn có thể tạo chỉ mục (mapID, areaID) để tra cứu thay vào đó, điều này sẽ tránh va chạm sai trên chỉ mục. (Điều đó sẽ không chuẩn hóa lược đồ của bạn, điều mà bạn có thể không muốn làm vì những lý do khác.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Windows Batch Script để sao lưu cơ sở dữ liệu MySQL cục bộ &chỉ giữ N THƯ MỤC mới nhất với các tệp sao lưu

  2. Một ràng buộc để ngăn chặn việc chèn một chuỗi trống trong MySQL

  3. Cơ sở dữ liệu Python và MySQL:Giới thiệu thực tế

  4. Làm cách nào để tạo một chỉ mục vào phần ngày của trường DATETIME trong MySql

  5. Làm cách nào để tạo một biểu đồ hình tròn hiển thị số lượng thứ mà mỗi người đã đăng ký?