Sqlite3 FK

0

Tworzę 2 tabele powiązane ze sobą kluczem obcym.

CREATE TABLE artist(
  artistid    INTEGER PRIMARY KEY, 
  artistname  TEXT
);

CREATE TABLE track(
  trackid     INTEGER, 
  trackname   TEXT, 
  trackartist INTEGER,
  FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);

Wstawiam przykładowe wartości:

INSERT INTO artist VALUES(2, 'Nazwa');
INSERT INTO track VALUES(1, 'Mr. Bojangles', 5);

Dlaczego po 2 insercie nie wyświetla mi błędu, że niepoprawna wartość, ponieważ nie ma id 5 w tabeli artist.

0

Stąd też ten przykład :) Problem w tym, że u mnie nie wyskakuje poniższy błąd, tylko dodaje rekord do tabeli

sqlite> -- This fails because the value inserted into the trackartist column (3)
sqlite> -- does not correspond to row in the artist table.
sqlite> INSERT INTO track VALUES(14, 'Mr. Bojangles', 3);
**SQL error: foreign key constraint failed**
1

to przeczytałeś Foreign key constraints are disabled by default (for backwards compatibility), so must be enabled separately for each database connection.?? Odblokowałeś FK?

0

Przeczytałem i na tym się zatrzymałem. Nie przeczytałem dalej, że są wersje, które nie obsługują kluczy obcych... Muszę chyba skorzystać z innej bazy

1 użytkowników online, w tym zalogowanych: 0, gości: 1