Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 05.04.2009, 17:11 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 05.04.2009
Beiträge: 17
Standard FOREIGN KEY und SmallINT

Servus zusammen,

und zwar habe ich zwei Tabellen, die eine Tabelle soll das "Schema" Tabelle dienen, und die zweite Tabelle soll sich beim Hinzufügen von Datensätzen jeweils nur die ID- aus der Schema- Tabelle holen bzw. dann eben hinzufügen.

Ich habe das Probem das ich bei der Erstellung bei der zweiten Tabelle den Error 150 erhalten, im phpMyAdmin. Aber auch nur, weil ich dort SMALLINT verwende, wenn ich INT aber nehme, klappt es...


Code:
SQL- Tabelle 1:
CREATE TABLE IF NOT EXISTS `registration_rules_theme` (
  `themeID` int(10) NOT NULL AUTO_INCREMENT,
  `theme` varchar(255) DEFAULT NULL,
  `sortOrder` smallint(3) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`themeID`),
  KEY `sortOrder` (`sortOrder`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

SQL- Tabelle 2:
CREATE TABLE IF NOT EXISTS `registration_rules` (
  `ruleID` int(10) NOT NULL AUTO_INCREMENT,
  `ruleGroup` smallint(3) unsigned NOT NULL DEFAULT '1',
  `sortOrder` smallint(3) unsigned NOT NULL DEFAULT '1',
  `headerTitle` varchar(255) NOT NULL,
  `contentDescription` varchar(1020) NOT NULL,
  PRIMARY KEY (`ruleID`),
  KEY `ruleGroup` (`ruleGroup`),
  KEY `sortOrder` (`sortOrder`),
  FOREIGN KEY (`ruleGroup`)
    REFERENCES `registration_rules_theme` (`themeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Kevz ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.04.2009, 23:36 Nach oben    #2
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 626
Standard

Erstmal: herzlich willkommen im Forum.

Fremdschlüssel dienen ja dazu Datensätze zu "verbinden".
Du kannst nicht in Tabelle 1 eine Spalte definieren die einen bestimmten Wertebereich aufnehmen kann und in Tabelle 2 als Fremdschlüssel darauf referenzieren aber einen anderen Wertebereich definieren.

Als Beispiel:
Du hast Tabelle a und definierst darin Mitarbeiter. Die Mitarbeiter bekommen als Primärschlüssel eine Mitarbeiternummer.
Nun hast du eine Tabelle b die Aufträge verwalten soll. Hier definierst du eine Spalte "Mitarbeiter" die auf den Mitarbeiter referenzieren soll. Wenn du hier den Wertebereich einschränkst (1-10 zB) kann das Ganze nicht mehr funktionieren. Was machst du wenn Mitarbeiter 11 einen Auftrag bekommt?

Oder in deinem Fall: Was passiert wenn in registration_rules_theme ein Wert in die int(10)-Spalte 'themeID' eingetragen wird der nicht in die darauf referenzierende Spalte 'ruleGroup' der Tabelle registration_rules passt, die nur Werte smallint(3) aufnehmen kann?

Gruß
Sparrow

Geändert von sparrow (05.04.2009 um 23:48 Uhr)
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.04.2009, 15:51 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 05.04.2009
Beiträge: 17
Standard

Vielen Dank,

es ist mir gestern auch erst wieder eingeleuchtet, daß es so nicht Funktionieren kann. Und noch einmal herzlichen Dank, für das Willkommen.
Kevz ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit key() bei SPL RecursiveIterator für eine Knotenstruktur robo47 PHP-Programmierung 0 08.08.2008 18:49
[C/PHP -> mcrypt] Zu kurzer Key WarrenFaith Sonstige Programmiersprachen 19 03.04.2007 11:03
[MySQL4] Primary Key zeitgleich Foreign Key WarrenFaith Datenbanken 4 27.02.2007 20:57
Key in beliebiger Arraydimension finden WarrenFaith PHP-Programmierung 9 15.05.2006 10:36
Speichern von Einstellungen - Welche API? pago Allgemeine Java-Programmierung 4 04.11.2005 20:25


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47