Avatar billede jara06 Nybegynder
28. januar 2006 - 17:54 Der er 3 kommentarer og
1 løsning

On update cascade problem i samme tabel

Hejsa.

Jeg har problemer med at opdatere rows i min menutabel. Det bunder i en foreign key til samme tabel med constraint på.
Spørgsmålet er så, gør jeg ikke det rigtige, siden jeg ikke kan opdatere id's der indgår i andre parents ?

Her er sql'en:
CREATE TABLE `tblMenu` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `linktext` varchar(100) NOT NULL,
  `linkhref` varchar(255) DEFAULT null,
  `area` varchar(50),
  `page_id` bigint(20) UNSIGNED DEFAULT null,
  `parent` bigint(20) UNSIGNED DEFAULT null,
  `tab_id` int(11) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY(`id`),
  INDEX `fki_tab_id`(`tab_id`),
  INDEX `fki_page_id`(`page_id`),
  INDEX `fki_parent`(`parent`),
  CONSTRAINT `fk_tblMenu_tab_id` FOREIGN KEY (`tab_id`)
    REFERENCES `tblTabs`(`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE,
  CONSTRAINT `fk_tblMenu_page_id` FOREIGN KEY (`page_id`)
    REFERENCES `tblPages`(`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE,
  CONSTRAINT `fk_tblMenu_parent` FOREIGN KEY (`parent`)
    REFERENCES `tblMenu`(`id`)
      ON DELETE RESTRICT
      ON UPDATE CASCADE
)
ENGINE=INNODB;

Test data:
INSERT INTO `tblMenu` VALUES
(1, 'Velkommen', DEFAULT, 'public', 1, DEFAULT, 1),
(2, 'Under velkomst', DEFAULT, 'public', 2, 1, 1);
UPDATE `tblMenu` SET id=3 WHERE id=1;
Avatar billede bromer Nybegynder
28. januar 2006 - 18:50 #1
Hvilken version af MySQL benytter du?
Avatar billede jara06 Nybegynder
28. januar 2006 - 18:58 #2
C:\Programmer\MySQL\MySQL Server 4.1\bin>mysql -V
mysql  Ver 14.7 Distrib 4.1.15, for Win32 (ia32)
Avatar billede jara06 Nybegynder
28. januar 2006 - 19:07 #3
Det skal dog portes til en linux maskine senere, der som minimum vil køre med 4.1.15, højst sandynligt en 5.x. :)

Alternativt kunne jeg slette den foreign key, men jeg forstår bare ikke helt, det ikke virker.
Avatar billede jara06 Nybegynder
12. februar 2006 - 22:24 #4
closing due to lack of answers :S
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester