Autor Zpráva
pcmanik
Profil
Zdravim, je mozne vytvorit Foreign Key na tabulke, tak aby odkazovala sama na seba?
Po spusteni nasledujuceho dotazu sa sice tabulka vytvori, ale uz sa do nej nedaju pridavat riadky.
Pricom zdielane odkazuje na id danej tabulky.
Po vlozeni riadku to hadze chybu - #1452 - Cannot add or update a child row: a foreign key constraint fails
Na internete som si precital, ze taketo vnutorne spojenie nieje mozne, ale rad by som si bol isty.
Ide mi v podstate o to, ze uzivatel zmaze prispevok (id), ktory bol zdielany a vsetky prispevky (id), kde bol tento prispevok (zdielane) sa nasledne zmazu.

CREATE TABLE `prispevky` (
 `id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
 `zdielane` SMALLINT UNSIGNED NOT NULL DEFAULT '0',
 `text` TEXT NOT NULL,
  KEY `zdielane` (`zdielane`),
  FOREIGN KEY (zdielane) REFERENCES prispevky(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Dakujem za rady.
ShiraNai7
Profil
pcmanik:
Lze to, ale řekl bych, že je třeba mít sloupec zdielane jako NULL s výchozí hodnotou NULL. Jinak nemáš šanci tam vložit žádné řádky.
pcmanik
Profil
ShiraNai7:
Ano je to tak, dakujem :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: