Támogatás a külföldi kulcsok sqlite

Ez a dokumentum ismerteti az idegen kulcs támogató SQL megvalósított SQLite verzió 3.6.19.

Az első fejezetet szentel az általános fogalom idegen kulcsok az SQLite, elmagyarázza példákkal és meghatározások terminológia megértéséhez szükséges dokumentumot. A második fejezet bemutatja azokat a lépéseket, amelyeket meg kell tenni annak érdekében, támogatja a külföldi kulcsok SQLite (alapértelmezés vannak tiltva). A következő fejezet (harmadik) leírja, hogy milyen indexeket kell létrehozni a felhasználó számára a használata a külföldi kulcsok, és mit kell létrehozni, hogy növelje a hatékonyságot a külső kulcs.

A 4. fejezet a speciális funkciók kapcsolódó idegen kulcsok támogatottak SQLite. Az 5. fejezetben leírja, hogy az ALTER parancs és DROP TABLE külső kulcsokat. Az utolsó fejezetben a 6. listákat realizált képességei és korlátai a jelenlegi végrehajtását.

Ez a dokumentum nem tartalmaz a teljes leírását a szintaxis létrehozása idegen kulcs használt SQLite. Megtalálható részeként a dokumentációt a kifejezés CREATE TABLE.

1. Általános információk idegen kulcs megszorítások

Idegen kulcs az SQL használnak érvényesíteni a fenntartását a táblák közötti kapcsolatok a mai napig. Vegyük például az adatbázis sémáját, hozza létre a következő parancs SQL:

Sajnos, ha a felhasználó szerkeszti az adatbázis külső eszközöket, vagy ha van egy hiba, az alkalmazás, akkor lehet szúrni a táblázatot «pálya» vonalak, amelyek nem rendelkeznek megfelelő sort a «» művész asztalra. Vagy ez lehet törölni egy sort «művész» asztal és ezáltal a „lógó” összhangban «track» asztalra, ami nem marad sorai «művész» asztalra.

Egy ilyen helyzet vezethet logikai hibák alkalmazások, szoftver hibák, vagy hogy alkalmazások fejlesztése nehezebb.

Az egyik megoldás az, hogy adjunk egy idegen kulcs egy SQL adatbázis sémáját, amely arra kényszerítené biztosítja a megőrzése közötti kapcsolatok «művész» asztalok és «track». Ehhez az szükséges, hogy módosítsa a bejelentő táblázatot «track» hozzátéve egy idegen kulcs meghatározása a következő:

Ez határt szabnak SQLite. Most megpróbál beszúrni egy sort asztal «pályán», amelyre nincs megfelelő sorra a «művész» asztal sikertelen lesz, valamint eltávolítja a vonalon «művész» asztal, amelynek függő sorok «pályán» asztalra.

De van egy kivétel: ha az idegen kulcs oszlop «pályán» az asztal NULL, hogy létezik a megfelelő sort a táblázatban neki «művész» van szükség. Az SQL szempontból ez azt jelenti, hogy a következő kifejezést kell igaz «pályán» A táblázat minden egyes sorában:

Tipp: Ha egy alkalmazás megköveteli a szigorú összefüggés a «művész» és «track», a NULL értéket kell tiltani az oszlop «trackartist». Ez úgy valósítható meg, hozzátéve, hogy az áramkör megfelelő korlát NOT NULL.

A következő kimenet SQLite ülésén a parancssorból szemlélteti az eredmény az idegen kulcs hozzá a «pálya» menetrend:

Akkor biztos lehet benne, hogy nem lehet úgy manipulálni az adatbázisba, törölni és módosítani a «művész» táblázatsorra megtörni az idegen kulcs megszorítás:

A következő terminológiát használjuk az SQLite:

A külföldi kulcs megszorítás akkor teljesül, ha minden sora egy két feltétel teljesül gyermek asztal, egy vagy több leányvállalat kulcs oszlopok NULL értéket, vagy ha létezik egy sort a szülő táblában minden oszlopban a szülő kulcs értékével megegyező értékét a megfelelő oszlop kiegészítő jelleggel.

Az „ekvivalens” az előző bekezdésben használjuk abban az értelemben, hogy az összehasonlítás alkalmazásával végezzük a szabályokat itt leírt. A jelenlegi helyzetben, ezek a szabályok a következők:

  • Ha összehasonlítjuk szöveges értékek, mindig használja a rendezési sorrend. társított a szülő kulcsoszlop.
  • Ha összehasonlítjuk az értékek a szülő kulcs finomítani. összevetése előtt affinirovannost ez vonatkozik az érték a gyermek gombot.

2. támogatásának engedélyezése idegen kulcsok