Kahmoon
Erfahrenes Mitglied
Tach beisammen. Ich hab komischerweise ein Problem Foreign Keys zu erstellen. Vorab gesagt. Alle Tabels sind InnoDB.
Bei 3 Tabellen funktioniert das Erstellen auch prima und die Keys funktionieren. Bei paar anderen Tabellen meckert er leider den INDEX an....irgendwie kann ich damit nicht wirklich viel anfangen. Eigentlich sind die Tabellen identisch zu denen wo es.
Folgende Keys will ich erstellen
einnahmen.idbenutzer -> benutzer.id
einnahmen.idkategorie -> einnahmen_kategorien.id
einnahmen.idquelle -> einnahmen_quellen.id
eigentlich ja nix wildes.....
Hier die Tabels um die es geht.
CREATE TABLE `einnahmen` (
`id` int(10) unsigned NOT NULL auto_increment,
`idbenutzer` int(10) NOT NULL default '0',
`idquelle` int(10) NOT NULL default '0',
`idkategorie` int(10) NOT NULL default '0',
`erfasst` timestamp NULL default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB; InnoDB free: 11264 kB; InnoDB free: 1' AUTO_INCREMENT=5 ;
CREATE TABLE `einnahmen_kategorien` (
`id` int(10) ) NOT NULL auto_increment,
`idbesitzer` int(10) NOT NULL default '0',
`bezeichnung` varchar(250) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 8192 kB; InnoDB free: 8192 kB' AUTO_INCREMENT=14 ;
CREATE TABLE `benutzer` (
`id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(50) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`vorname` varchar(50) NOT NULL default '',
`nachname` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB; InnoDB free: 11264 kB; InnoDB free: 1' AUTO_INCREMENT=4 ;
Als Zusatzinfo noch 2 Tabellen wo die Verknüpfung klappt
CREATE TABLE `ausgaben` (
`id` int(10) unsigned NOT NULL auto_increment,
`idbenutzer` int(10) unsigned NOT NULL default '0',
`idkategorie` int(10) unsigned NOT NULL default '0',
`idgeschaeft` int(10) NOT NULL default '0',
`erfasst` timestamp NULL default NULL,
PRIMARY KEY (`id`),
KEY `FK_kategorie` (`idkategorie`),
KEY `FK_Benutzer` (`idbenutzer`),
KEY `FK_Geschaeft` (`idgeschaeft`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB; (`idbenutzer`) REFER `haushalt/benutz' AUTO_INCREMENT=62 ;
CREATE TABLE `ausgaben_geschaefte` (
`id` int(10) ) NOT NULL auto_increment,
`idbesitzer` int(10) ) NOT NULL default '0',
`bezeichnung` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;
vielleicht hat jemand ne Idee wo ich hänge.
Gruß Franky
Bei 3 Tabellen funktioniert das Erstellen auch prima und die Keys funktionieren. Bei paar anderen Tabellen meckert er leider den INDEX an....irgendwie kann ich damit nicht wirklich viel anfangen. Eigentlich sind die Tabellen identisch zu denen wo es.
Folgende Keys will ich erstellen
einnahmen.idbenutzer -> benutzer.id
einnahmen.idkategorie -> einnahmen_kategorien.id
einnahmen.idquelle -> einnahmen_quellen.id
eigentlich ja nix wildes.....
Hier die Tabels um die es geht.
CREATE TABLE `einnahmen` (
`id` int(10) unsigned NOT NULL auto_increment,
`idbenutzer` int(10) NOT NULL default '0',
`idquelle` int(10) NOT NULL default '0',
`idkategorie` int(10) NOT NULL default '0',
`erfasst` timestamp NULL default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB; InnoDB free: 11264 kB; InnoDB free: 1' AUTO_INCREMENT=5 ;
CREATE TABLE `einnahmen_kategorien` (
`id` int(10) ) NOT NULL auto_increment,
`idbesitzer` int(10) NOT NULL default '0',
`bezeichnung` varchar(250) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 8192 kB; InnoDB free: 8192 kB' AUTO_INCREMENT=14 ;
CREATE TABLE `benutzer` (
`id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(50) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`vorname` varchar(50) NOT NULL default '',
`nachname` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB; InnoDB free: 11264 kB; InnoDB free: 1' AUTO_INCREMENT=4 ;
Als Zusatzinfo noch 2 Tabellen wo die Verknüpfung klappt
CREATE TABLE `ausgaben` (
`id` int(10) unsigned NOT NULL auto_increment,
`idbenutzer` int(10) unsigned NOT NULL default '0',
`idkategorie` int(10) unsigned NOT NULL default '0',
`idgeschaeft` int(10) NOT NULL default '0',
`erfasst` timestamp NULL default NULL,
PRIMARY KEY (`id`),
KEY `FK_kategorie` (`idkategorie`),
KEY `FK_Benutzer` (`idbenutzer`),
KEY `FK_Geschaeft` (`idgeschaeft`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='InnoDB free: 11264 kB; (`idbenutzer`) REFER `haushalt/benutz' AUTO_INCREMENT=62 ;
CREATE TABLE `ausgaben_geschaefte` (
`id` int(10) ) NOT NULL auto_increment,
`idbesitzer` int(10) ) NOT NULL default '0',
`bezeichnung` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=39 ;
vielleicht hat jemand ne Idee wo ich hänge.
Gruß Franky
Zuletzt bearbeitet: