---
title: "Radera från kopplingstabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/120079-radera-från-kopplingstabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Razofish"
published: "2005-01-13T20:14:16.000Z"
updated: "2005-01-14T13:54:21.000Z"
replies: 3
views: 414
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/120079-radera-från-kopplingstabeller"
---

# Radera från kopplingstabeller

## #1 — Razofish, 2005-01-13T20:14Z

Hej!

Jag har tre tabeller som ser ut så här:

```
CREATE TABLE `bokningsrad` (
  `brid` mediumint(8) unsigned NOT NULL auto_increment,
  `start` datetime NOT NULL default '0000-00-00 00:00:00',
  `slut` datetime NOT NULL default '0000-00-00 00:00:00',
  `aktiv` tinyint(1) NOT NULL default '0',
  `pris` smallint(6) NOT NULL default '0',
  `vecka` tinyint(3) NOT NULL default '0',
  `personnr` varchar(10) NOT NULL default '8303142718',
  `bokningsnr` smallint(5) NOT NULL default '0',
  PRIMARY KEY  (`brid`),
  KEY `vecka` (`vecka`),
  KEY `personnr` (`personnr`),
  KEY `bokningsnr` (`bokningsnr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `skapa_stuga` (
  `brid` mediumint(8) NOT NULL default '0',
  `stugid` smallint(5) NOT NULL default '0',
  PRIMARY KEY  (`brid`,`stugid`),
  KEY `stugid` (`stugid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `stuga` (
  `stugid` smallint(5) unsigned NOT NULL auto_increment,
  `stugnamn` varchar(255) NOT NULL default '',
  `hpris` varchar(255) NOT NULL default '',
  `mpris` varchar(255) NOT NULL default '',
  `lpris` varchar(255) NOT NULL default '',
  `antal_baddar` char(2) NOT NULL default '',
  `extra_baddar` char(2) NOT NULL default '',
  `pris_extra_baddar` varchar(255) NOT NULL default '',
  `antal_rum` char(2) NOT NULL default '',
  `el` varchar(255) NOT NULL default '',
  `yta` varchar(255) NOT NULL default '',
  `beskrivning` text,
  PRIMARY KEY  (`stugid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
```

Då skapa_stuga är en kopplingstabell mellan bokningsrad och stuga så vill jag ju givetvis inte ha kvar några rader där utifall att jag raderar ett brid eller stugid. Jag har läst lite om att de främmande nycklarna kan lösa detta?

DBMSen är MySQL.

Hopppas ni förstår min fråga ;)

Permalänk: https://www.webforum.nu/p/120079

## #2 — LarsG, 2005-01-13T20:23Z

Ange on delete cascade när du defineriar dina främmande nycklar.

Permalänk: https://www.webforum.nu/p/1526652

## #3 — Razofish, 2005-01-13T20:49Z

Nu har jag:

```
CREATE TABLE skapa_stuga (
brid mediumint(8) NOT NULL,
stugid smallint(5) NOT NULL,
PRIMARY KEY (brid,stugid),
FOREIGN KEY (brid) REFERENCES bokningsrad ON DELETE CASCADE,
FOREIGN KEY (stugid) REFERENCES stuga ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
```

Men det fungerar inte  :l 

För följande kod ska väl fungera?

```
DELETE FROM bokningsrad where brid=1;
```

Då bör väl raden som har brid=1 försvinna från skapa_stuga?

Permalänk: https://www.webforum.nu/p/1526672

## #4 — toha, 2005-01-14T13:54Z

> kod:--------------------------------------------------------------------------------
> DELETE FROM bokningsrad where brid=1;
> \--------------------------------------------------------------------------------
> Då bör väl raden som har brid=1 försvinna från skapa_stuga?

Tycker det låter riktigt. :q  Alla rader i skapa_stuga som har brid = 1 kommer att försvinna.

Permalänk: https://www.webforum.nu/p/1527005

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/120079-radera-från-kopplingstabeller
