sql >> Database teknologi >  >> RDS >> Mysql

MySQL-tabel med en varchar-kolonne som fremmednøgle

Du kan kun have en fremmednøgle, der refererer til et unikt felt. Rediger din network_classes-tabel, så kategorifeltet er unikt, som nedenfor

 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;

Du skulle derefter være i stand til at tilføje den fremmednøgle, du ønsker



  1. Hvorfor ikke deaktivere ONLY_FULL_GROUP_BY

  2. Hvordan kan jeg sende en http-anmodning fra postgresql-funktion eller trigger

  3. PostgreSQL - forespørgsel fra bash script som databasebruger 'postgres'

  4. FEJL:SQLSTATE[HY000] [2002] Der kunne ikke oprettes forbindelse, fordi målmaskinen aktivt nægtede det