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

MySQL:Tạo bảng bị lỗi FK (errno 150)

Loại trường trong khóa ngoại phải giống với loại cột mà chúng đang tham chiếu. Bạn có những thứ sau (đoạn trích):

CREATE  TABLE IF NOT EXISTS `state` (
  `state_id` INT NOT NULL AUTO_INCREMENT ,
...
CREATE  TABLE IF NOT EXISTS `brand` (
  `brand_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
...
CREATE  TABLE IF NOT EXISTS `location` (
...
  `state_id` TINYINT UNSIGNED NULL DEFAULT NULL ,
...
  `brand_id` TINYINT UNSIGNED NOT NULL ,

vì vậy bạn đang cố tham chiếu đến INT các trường (trong bảng statebrand ) với TINYINT các trường trong bảng location . Tôi nghĩ đó là lỗi mà nó đang phàn nàn. Không chắc chắn nó xuất hiện như thế nào ngay từ đầu hoặc tại sao lại không xuất hiện FOREIGN_KEY_CHECKS không ngăn MySQL chẩn đoán lỗi, nhưng điều gì sẽ xảy ra nếu bạn sửa lỗi kiểu này không khớp?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tách một tệp mysqldump với nhiều cơ sở dữ liệu, theo cơ sở dữ liệu

  2. MySQL:Quyền truy cập bị từ chối đối với người dùng vào cơ sở dữ liệu

  3. Lỗi ứng dụng Rails - ActiveRecord ::PendingMigrationError Migrations đang chờ xử lý; chạy 'rake db:migrate RAILS_ENV =development' để giải quyết vấn đề này

  4. Tối ưu hóa truy vấn sử dụng chỉ mục MySQL

  5. Lỗi PHP -> Cảnh báo:mysqli_stmt ::execute ():Không thể tìm nạp mysqli_stmt | Cảnh báo:mysqli_stmt ::close ()