Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][MySQL]delete i foreign key
zaajcu
post 11.11.2011, 12:11:37
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 3
Dołączył: 18.08.2011
Skąd: Chrzanów

Ostrzeżenie: (0%)
-----


mam bazę danych powiązaną kluczami obcymi.
Chciałbym usunąć jeden wiersz i wszystkie inne wiersze, które są z nim powiązane.
Jak to mogę zrobić?
Istnieje jakaś komenda sql która to zrobi czy trzeba się bawić w php?

Ten post edytował zaajcu 11.11.2011, 12:12:45
Go to the top of the page
+Quote Post
ixpack
post 11.11.2011, 12:27:20
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Tworząc struktury tabel ustaw foreign key dla kluczy i w momencie usunięcia "rodzica" usuniesz i wszystkie powiązane rekordy z 2-giej tabeli.

To mój "dump": - przeanalizuj tworzenie obu tabel (KEY i CONSTRAINT ważne), aha engine musi być InnoDb. Na myisam nie działa

  1. DROP TABLE IF EXISTS `main_data`;
  2. /*!40101 SET @saved_cs_client = @@character_set_client */;
  3. /*!40101 SET character_set_client = utf8 */;
  4. CREATE TABLE `main_data` (
  5. `customer_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  6. `title` enum('mr','ms','miss','mrs') CHARACTER SET latin1 NOT NULL,
  7. `name` varchar(50) NOT NULL,
  8. `surname` varchar(50) NOT NULL,
  9. `mobile_ext` smallint(5) UNSIGNED NOT NULL,
  10. `mobile_number` decimal(15,0) UNSIGNED NOT NULL,
  11. `date` date NOT NULL,
  12. PRIMARY KEY (`customer_id`),
  13. UNIQUE KEY `mobile_number_UNIQUE` (`mobile_number`)
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  15. /*!40101 SET character_set_client = @saved_cs_client */;
  16.  
  17. DROP TABLE IF EXISTS `email`;
  18. /*!40101 SET @saved_cs_client = @@character_set_client */;
  19. /*!40101 SET character_set_client = utf8 */;
  20. CREATE TABLE `email` (
  21. `customer_id` int(10) UNSIGNED NOT NULL,
  22. `e_mail` varchar(50) NOT NULL,
  23. PRIMARY KEY (`customer_id`),
  24. UNIQUE KEY `email_UNIQUE` (`e_mail`),
  25. KEY `fk_e_md` (`customer_id`),
  26. CONSTRAINT `fk_e_md` FOREIGN KEY (`customer_id`) REFERENCES `main_data` (`customer_id`) ON DELETE CASCADE ON UPDATE CASCADE
  27. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  28. /*!40101 SET character_set_client = @saved_cs_client */;


Ten post edytował ixpack 11.11.2011, 12:28:00


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.05.2024 - 22:22