SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name

Kann mir jemand bei meinem Problem helfen? Was muss ich in diesem Fall tun?

Fehler: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‚mail_template_to_operator_id‘

public function update(Connection $connection): void
    {
        $sql = <<<'SQL'
ALTER TABLE `form` ADD (
    `mail_template_to_operator_id` BINARY(16),
    `mail_template_to_customer_id` BINARY(16),
    CONSTRAINT `fk.form.mail_template_to_operator_id` FOREIGN KEY (`mail_template_to_operator_id`)
        REFERENCES `mail_template` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
    CONSTRAINT `fk.form.mail_template_to_customer_id` FOREIGN KEY (`mail_template_to_customer_id`)
        REFERENCES `mail_template` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
SQL;

        $connection->executeUpdate($sql);
    }

Vielen Dank an jeden der mit weiterhelfen kann.

Einfach die Spalte aus dem Script auskommentieren oder entfernen:

$sql = <<<'SQL'
ALTER TABLE `form` ADD (
    `mail_template_to_customer_id` BINARY(16),
    CONSTRAINT `fk.form.mail_template_to_customer_id` FOREIGN KEY (`mail_template_to_customer_id`)
        REFERENCES `mail_template` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
SQL;

Schau bitte nach ob die Spalte mail_template_to_customer_id existiert, dann kannst du den gesamten Teil einfach entfernen.

Ist vorher etwas schief gelaufen? Schließlich sollte die Spalte noch nicht da sein.

Ja die Spalte ist in der Tabelle da. Ich hab die Spalte aus dem Skript genommen, jetzt kommt der selbe Fehler mit ‚mail_template_to_customer_id‘. Soll ich den Eintrag auch entfernen? Also das gesamte $sql Statement.

Wenn beide Spalten da sind, dann alles entfernen. Damit sollte das behoben sein.

1 „Gefällt mir“