Ich brauche ein frisches Paar Augen, um zu sehen, was genau ich hier falsch mache.Mysql Fehler: 1215 Kann Fremdschlüssel-Einschränkung nicht hinzufügen [Fremdschlüssel gleichen Typs, innodb]
CREATE TABLE IF NOT EXISTS `spring_normalize`.`users` (
`username` VARCHAR(60) NOT NULL,
`password` VARCHAR(80) NULL,
`authority` VARCHAR(45) NULL,
`name` VARCHAR(100) NULL,
`enabled` TINYINT(1) NULL,
`email` VARCHAR(60) NULL,
PRIMARY KEY (`username`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `spring_normalize`.`offers` (
`id` INT NOT NULL AUTO_INCREMENT,
`text` VARCHAR(100) NULL,
`users_username` VARCHAR(60) NOT NULL,
PRIMARY KEY (`id`, `users_username`),
INDEX `fk_offers_users_idx` (`users_username` ASC),
CONSTRAINT `fk_offers_users`
FOREIGN KEY (`users_username`)
REFERENCES `spring_normalize`.`users` (`username`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Von anderen Menschen, die das gleiche Problem:
- Ist Db InnoDB? Ja
- Sind alle Tabellen InnoDB? Ja
- Ist der eindeutige Index auf der Referenztabelle vorhanden? Ja
- Sind referenzierte und referenzierende Spalten genau vom selben Typ? Ja
Frage was mache ich falsch? Danke im Voraus!
[Kann nicht wiederholt werden] (http://sqlfiddle.com/#!2/d2f001), wurde auch lokal mit einer 'spring_normalize'-Datenbank versucht, die erstellt wurde, und den vollständigen Datenbanknamen. Sind Sie sicher, dass keine der Tabellen in einer vorherigen - anderen - Form existiert, da Sie nur erstellen, wenn nicht existiert? –
Ihr Code - minus den Datenbanknamen - funktioniert gut mit SQL Fiddle: http://www.sqlfiddle.com/#!9/d2f00. –
Das Problem ist nicht reproduzierbar, Sie haben etwas falsch gemacht. Es arbeitet auch an MariaDB 10. Der Fehler stammt von einem anderen Skript. – DanFromGermany