Diskuze: Relace mezi záznamy v tabulce

Ostatní jazyky SQL SQL a databáze Relace mezi záznamy v tabulce

Aktivity (1)
Avatar
Mario Brunmayr:5.7.2017 23:59

Ahoj mám tento SQL příkaz

CREATE TABLE IF NOT EXISTS sazka (
  id int(11) AUTO_INCREMENT,
  id_uzivatele int,
  zetony int,
  FOREIGN KEY(id_uzivatele) REFERENCES uzivatele(uzivatele_id),
  PRIMARY KEY (id)
);

a když ho chci provést tak mám tuto chybu.

#1005 - Can't create table `redakcni`.`sazka` (errno: 150 "Foreign key constraint is incorrectly formed")

Je mi jasný že problém je s vytvoření relace. Zároveň by jsem se chtěl zeptat jestli se mi do tabulky sázka doplní automaticky všechny uzivatele_id z tabulky uzivatele do sloupce id_uzivatele z tabulky sazky. Předem děkuji za pomoc

Mario Brunmayr

 
Odpovědět 5.7.2017 23:59
Avatar
Paul
Člen
Avatar
Odpovídá na Mario Brunmayr
Paul:12.7.2017 12:01

Chybová hláška je dost obecná.
Napadá mě, jestli by nemohlo být rozdílnými datovými typy, zkus to ověřit.

 
Nahoru Odpovědět 12.7.2017 12:01
Avatar
Peter Trcka
Člen
Avatar
Odpovídá na Mario Brunmayr
Peter Trcka:12.7.2017 13:04
CREATE TABLE IF NOT EXISTS sazka (
  id int(11) AUTO_INCREMENT,
  id_uzivatele int(11),
  zetony int,
  FOREIGN KEY(id_uzivatele) REFERENCES uzivatele(id),
  PRIMARY KEY (id)
);

predpokladám, že v tabulke uzivatele je ako primarny kluc pouzitý stĺpec id a rozsah je int(11)

 
Nahoru Odpovědět 12.7.2017 13:04
Avatar
Odpovídá na Peter Trcka
Mario Brunmayr:12.7.2017 23:18

Děkuji, tento problém jsem vyřešil spíše teď mě zajímá jestli je možný pouze pomocí SQL lze vytvořit automaticky záznam v tabulce sazky pokuď bude v tabulce uzivatele zapsán nový záznam (nové ID).

 
Nahoru Odpovědět 12.7.2017 23:18
Avatar
plelovsky
Člen
Avatar
plelovsky:17.7.2017 10:58

Pomocí triggeru
https://dev.mysql.com/…trigger.html

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 17.7.2017 10:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.