Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klucz obcy ... nie działa
Forum PHP.pl > Forum > Bazy danych > MySQL
kanan
Zauwazylem, ze w przypadku mySQLowych kluczy obcych mozliwe jest wstawianie do tabeli elementów, ktore nie istnieja:

  1. CREATE TABLE fk_first(
  2. id INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. name_text VARCHAR( 30 )
  4. );# MySQL returned an empty result set (i.e. zero rows).
  5. CREATE TABLE fk_reference(
  6. id INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  7. value TINYINT( 2 ) NOT NULL ,
  8. amount INT( 4 ) DEFAULT 0,
  9. ref_id TINYINT( 3 ) ,
  10. CONSTRAINT fk_ref_first FOREIGN KEY ( ref_id ) REFERENCES fk_first( id )
  11. );# MySQL returned an empty result set (i.e. zero rows).


Czy jest w tym jakis blad?

Probowalem wykonac takie zapytanie, w tabeli fk_first istnialy tylko rekordy 1 i 2, wiec teoretycznie powinno mi wyrzucic blad, ale niestety wszystko przeszlo bez problemu. W czym tkwi problem?

  1. INSERT
  2. INTO `fk_reference`
  3. ( `id` , `value` , `amount` , `ref_id` )
  4. VALUES (
  5. NULL , '9999', '3', '1'
  6. ), (
  7. NULL , '3333', '01', '3'
  8. );
sf
Klucze obce dzialaja tylko z tabela InnoDB.

PS Zacznij lepiej uzywac PostgreSQL.
kanan
Jakie sa powody ku ktoremu naprawde warto sie przerzucic. Za informacje w sprawie typu dziekuje, musze teraz sprawdzic, jak to sie przeklada tzn. jakie roznice sa miedzy InnoDB a MyISAM.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.