Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tabela MySQL z kolumną varchar jako kluczem obcym

Możesz mieć tylko klucz obcy odwołujący się do unikatowego pola. Zmodyfikuj tabelę network_classes tak, aby pole kategorii było niepowtarzalne, jak poniżej

 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;

Powinieneś wtedy móc dodać żądany klucz obcy



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd mysql:przekroczono maksymalną liczbę połączeń na godzinę

  2. Jak pobrać ostatni rekord w tabeli bazy danych MySQL przy użyciu PHP?

  3. Najlepszy sposób na przechowywanie godzin pracy i efektywne wyszukiwanie

  4. Wyjątek hibernacji w zapytaniu łączenia krzyżowego MySQL

  5. Co się stanie, jeśli usunę ibdata1 w mysql (LINUX)