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

Bảng MySQL với một cột varchar làm khóa ngoại

Bạn chỉ có thể có một khóa ngoại tham chiếu đến một trường duy nhất. Sửa đổi bảng network_classes của bạn để trường danh mục là duy nhất, như bên dưới

 CREATE TABLE network_classes (
    id TINYINT(1) UNSIGNED NOT NULL AUTO_INCREMENT,
    category VARCHAR(80) NOT NULL,
    PRIMARY KEY(id),
    UNIQUE KEY `category_UNIQUE` (`category`),
    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;

Sau đó, bạn sẽ có thể thêm khóa ngoại mà bạn muố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. MySQL động với các biến cục bộ

  2. Chèn nhiều hàng với PDO

  3. Lấy điểm trung bình của 10 sinh viên hàng đầu từ mỗi trường

  4. PDO ::FETCH_ASSOC không tìm nạp mọi thứ

  5. MYSQL chỉ đổ một số hàng nhất định