Tôi đang cố gắng tạo một bảng có cột VARCHAR làm khóa ngoài nhưng MySql cho tôi một lỗi khi tạo bảng. truy vấn của tôi là như thế này:Bảng MySQL với cột VARCHAR là khóa ngoài
CREATE TABLE network_classes (
id TINYINT(1) UNSIGNED NOT NULL AUTO_INCREMENT,
category VARCHAR(80) NOT NULL,
PRIMARY KEY(id),
KEY `key_1` (`id`,`category`)
)
ENGINE=InnoDB;
CREATE TABLE networks (
id TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
category VARCHAR(80) NOT NULL,
director_id TINYINT(3) UNSIGNED NULL,
director_name VARCHAR(100) NULL,
description VARCHAR(1000) NULL,
last_modified TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
user_id SMALLINT UNSIGNED NULL,
PRIMARY KEY(id),
KEY `networks_fk1` (`category`),
CONSTRAINT `networks_fk1` FOREIGN KEY (`category`) REFERENCES `network_classes` (`category`) ON DELETE NO ACTION,
INDEX networks_index2471(name),
INDEX networks_index2472(director_id, director_name)
)
ENGINE=InnoDB;
và tôi nhận được lỗi này:
[Err] 1215 - Cannot add foreign key constraint
Tôi đang sử dụng MySQL 5.6.12. Làm thế nào tôi có thể viết lại truy vấn của mình để sửa nó?
tôi sửa chữa nó nhưng vẫn có cùng một vấn đề –
network_classess của bạn đang trống ? Một điều nữa, nếu bạn định nghĩa một khóa chính hỗn hợp, khóa ngoại phải bằng nhau (nó không ảnh hưởng đến lỗi của bạn) –
vâng, đúng vậy. bạn có thể chạy truy vấn bên cạnh bạn không? Tôi đang tìm một giải pháp thực tế hơn là trí tưởng tượng lý thuyết. –