tbee's page
   home  work  myself  mixed  guestbook  
   
      INHALT MySQL Übungen mit Foreign Keys mit InnoDB Tabellen in Mys

Wer mir was gutes tun will kauft über diesen Link bei Amazon ein !

Übungen mit Foreign Keys mit InnoDB Tabellen in Mysql

Folgende Tabellen werden für die Übungen benötigt:
 
# Tabellenstruktur für Tabelle `autor`

CREATE TABLE `autor` (
  `id` int(10)  NOT NULL ,
  `name` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `NAME` (`name`)
) TYPE=InnoDB;

# Tabellenstruktur für Tabelle `buch`

CREATE TABLE `buch` (
  `id` int(10)  NOT NULL,
  `autor_id` int(10)  NOT NULL ,
  `titel` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `TITEL` (`titel`),
  INDEX idx_autor_id (autor_id),
  FOREIGN KEY (autor_id) REFERENCES autor(id)
  ON DELETE CASCADE 
) TYPE=InnoDB  
;


CREATE TABLE `buch2` (
  `id` int(10)  NOT NULL,
  `autor_id` int(10)  ,
  `titel` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `TITEL` (`titel`),
  INDEX idx_autor_id (autor_id),
  FOREIGN KEY (autor_id) REFERENCES autor(id)
  ON DELETE SET NULL
) TYPE=InnoDB  
;

CREATE TABLE `buch3` (
  `id` int(10)  NOT NULL,
  `autor_id` int(10)  NOT NULL,
  `titel` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`id`),
  KEY `TITEL` (`titel`),
  INDEX idx_autor_id (autor_id),
  FOREIGN KEY (autor_id) REFERENCES autor(id)
  ON DELETE RESTRICT
) TYPE=InnoDB  
;

# Daten

INSERT INTO `autor` VALUES (1002, 'Friedrich Schiller');
INSERT INTO `autor` VALUES (1000, 'Heinrich Heine');
INSERT INTO `autor` VALUES (1001, 'Hermann Hesse');
INSERT INTO `autor` VALUES (1003, 'Martin Walser');


INSERT INTO `buch` VALUES ('10001', '1001','Vom Winde verweht');
INSERT INTO `buch` VALUES ('10002', '1002','Das Leben ist schön');
INSERT INTO `buch` VALUES ('10003', '1002','Der Held der DB');
INSERT INTO `buch` VALUES ('10004', '1003','Nie wieder SQL');

Analyse der Unterschiede

Beim Löschen von Autoren in den verschiedenen Tabellen:

  • buch
  • buch2
  • buch3
Modifizieren der Tabellen

Foreign Key mit Update Definitionen versehen:

  • ON UPDATE CASCADE
  • ON UPDATE SET NULL
  • ON UPDATE NO ACTION
  • ON UPDATE RESTRICT

Das Verhalten beim Werte einfügen

  • Weitere Werte einfügen
  • Update auf bestehende Werte (Buch & Autor!)

Weitere Tabelle mit FK anlegen

  • Tabelle Verlag anlegen (mit FK im Create)
  • Tabelle Auflage anlegen (FK mit ALTER )
Datenbankvergleich > Übungen zu Transaktionen

 

Druckerversion     [valid html 4.01]      [english]
style: blauer Stylegelber Styleroter Stylegruener StyleStandard Style
© 2001 by  tbee / Impressum last update at: 14.05. 2003 22:05:06
url: www.tbee.de/mysql/p5_mysql_foreignkey.php