sql >> Database >  >> RDS >> Mysql

FOREIGN KEY verwijst naar de kolom van dezelfde tabel. Kan geen waarden invoegen

Voor al uw behoeften zou u deze structuur moeten nemen

CREATE TABLE `menus` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) unsigned DEFAULT NULL,
  `label` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `fk_parent_menu` (`parent_id`),
  CONSTRAINT `fk_parent_menu` FOREIGN KEY (`parent_id`) 
    REFERENCES `menus` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);

SQL Fiddle DEMO

Demo toont het invoegen en verwijderen van een bovenliggend knooppunt

Het magische drop-gedeelte voor alle kinderen wordt gedaan door ON DELETE CASCADE



  1. enum of char(1) in MySQL

  2. Wanneer DISTINCT <> GROUP BY

  3. Hoe 'distinct' te gebruiken in zend db-model

  4. MySQL met Sum en Case