---
title: "Problem med delete"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/157351-problem-med-delete"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pedda"
published: "2007-02-19T12:30:10.000Z"
updated: "2007-02-19T19:32:48.000Z"
replies: 9
views: 511
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/157351-problem-med-delete"
---

# Problem med delete

## #1 — Pedda, 2007-02-19T12:30Z

Jag har ett problem med att få min delete att fungera.

Jag har tre tabeller:

**forums** 
id
...

**threads**
thread_id
ref_forumId              // referens till vilket forum tråden tillhör
...

**posts**
post_id
ref_threadId    // referens till vilken tråd posten tillhör
...

Det jag försöker få till är att när jag raderar ett forum så ska även tillhörande threads och posts raderas.
Databasen är MySQL 5.0.

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

## #2 — @nders, 2007-02-19T12:35Z

Sätt upp foreign keys med "on delete cascade".

<http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html>

Mvh

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

## #3 — Pedda, 2007-02-19T12:57Z

Nu har jag lagt till foreign keys med on delete cascade.

Innebär inte det att trådar och poster automatiskt ska raderas om jag kör:
$query = "DELETE FROM ".$prefix."forums WHERE id = $forumId"; 

Testade och forumet raderades men inte tillhörande trådar.

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

## #4 — Peter S, 2007-02-19T18:48Z

Hur är tabellerna definierade? Visa vad SHOW CREATE TABLE *tabellnamn* ger för alla inblandade tabeller.

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

## #5 — Pedda, 2007-02-19T19:06Z

Missade att sätta INNODB så foreign key ignorerades.

Nu gör jag något annat fel. Får felmeddelandet:
Can't create table '.\\testforum\\forums.frm' (errno: 150)

Felmeddelandet visar att något är fel med min foreign key, men vad?
tabellen forums skapas som den ska men sen när tabellen threads ska skapas så tar det stopp.

```
mysql_query("CREATE TABLE threads (
  thread_id int(11) UNSIGNED NOT NULL auto_increment,
  ref_forumId int(11) NOT NULL,
  ...
  PRIMARY KEY (thread_id),
  INDEX (ref_forumId), 
  FOREIGN KEY (ref_forumId) REFERENCES forums(id) ON DELETE CASCADE  
) ENGINE=INNODB;") or die (mysql_error());
```

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

## #6 — Peter S, 2007-02-19T19:15Z

Har du satt INNODB på samtliga tabeller?

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

## #7 — Pedda, 2007-02-19T19:19Z

> **Peter S skrev:**
>
> Har du satt INNODB på samtliga tabeller?

Ja

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

## #8 — Peter S, 2007-02-19T19:21Z

En liten sökning gav bl.a. följande:
<http://forums.mysql.com/read.php?22,19755,43805#msg-43805>

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

## #9 — Pedda, 2007-02-19T19:28Z

Tack.
Hjälpte att sätta UNSIGNED på fälten.

Nu ska jag testa att lägga in lite och radera bara så får vi se.

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

## #10 — Pedda, 2007-02-19T19:32Z

Verkar funka som det ska. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/157351-problem-med-delete
