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

khóa chính tổng hợp và cột tự động gia tăng nhưng KHÔNG phải khóa chính

Một giải pháp cho vấn đề này là sử dụng ID làm khóa chính của bạn và var1, var2, var3, year các trường làm khóa thay thế bằng cách sử dụng UNIQUE KEY ràng buộc

Vì vậy, định nghĩa bảng của bạn sẽ giống như sau:

CREATE  TABLE `tbl_result` (
  `ID` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `var1` DECIMAL(6,2) UNSIGNED NOT NULL ,
  `var2` DECIMAL(3,2) UNSIGNED NOT NULL ,
  `var3` INT(11) UNSIGNED NOT NULL ,
  `year` INT(4) UNSIGNED NOT NULL ,
  `result` DECIMAL(8,4) NOT NULL ,
  PRIMARY KEY (`ID`),
  UNIQUE KEY (`var1`, `var2`, `var3`, `year`) 
);

UNIQUE KEY ràng buộc sẽ ngăn chặn việc chèn trùng lặp các trường của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. InnoDB chỉ chèn bản ghi nếu tồn tại id được tham chiếu (không có PHÍM NGOÀI)

  2. lệnh cập nhật bị từ chối cho người dùng

  3. Lỗi MySQL Quá nhiều kết nối

  4. # 1136 - Số cột không khớp với số giá trị ở hàng 1

  5. Cách sử dụng cấu hình Master / Slave doct2 từ các lệnh của Symfony2 Console