Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Löschen einer Spalte mit einem Fremdschlüssel

Sie müssen den Schlüssel zuerst fallen lassen. Ich kenne die Namen Ihrer Tabellen nicht, aber ich gebe Ihnen die allgemeine Strategie anhand eines Beispiels. Angenommen, Sie haben die folgenden 2 InnoDB-Tabellen:

CREATE TABLE `A` (
   `id` int(10) unsigned NOT NULL auto_increment,
    PRIMARY KEY  (`id`)
) ENGINE=InnoDB;

CREATE TABLE `B` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `a_id` int(10) unsigned NOT NULL,
    PRIMARY KEY  (`id`),
    KEY `a_id` (`a_id`),
    CONSTRAINT `b_ibfk_1` FOREIGN KEY (`a_id`) REFERENCES `a` (`id`)
) ENGINE=InnoDB;

Sie können die a_id weglassen Spalte in Tabelle B mit dem folgenden Befehl:

alter table B drop foreign key b_ibfk_1, drop column a_id;