Vai ārējā atslēga var būt nulles Postgres?
Vai ārējā atslēga var būt nulles Postgres?

Video: Vai ārējā atslēga var būt nulles Postgres?

Video: Vai ārējā atslēga var būt nulles Postgres?
Video: How To Add FOREIGN KEY in Postgresql 2024, Aprīlis
Anonim

INSERT INTO produkta VĒRTĪBAS (11, "Joe", 1); INSERT INTO produktu VĒRTĪBĀS (22, "visiem", NULL ); Tas ir pilnīgi likumīgi, ja ir anulējams sveša atslēga sleja.

Jautājums ir arī par to, vai ārējā atslēga var būt nulle?

A sveša atslēga padara savu tabulu atkarīgu no citas tabulas, ko sauc par vecāktabulu. A sveša atslēga kas satur null vērtības nevar atbilst vecāku vērtībām taustiņu , kopš vecāks taustiņu pēc definīcijas var nav null vērtības. Tomēr a nulles ārējā atslēga vērtība vienmēr ir derīga neatkarīgi no tās vērtības, kas nav null daļas.

Turklāt, kā PostgreSQL pievienot ārējo atslēgu? PIEVIENOT CONSTRAINT ierobežojuma_nosaukums SVEŠA ATSLĒGA (c1) ATSAUKSMES vecāku_tabula (p1); Viena pēdējā piezīme, kad vēlaties pievienojiet ārējo atslēgu esošajai tabulai, izmantojot ierobežojumu ON DELETE CASCADE, jums ir jāveic šādas darbības: Atmetiet esošo sveša atslēga ierobežojums. Pievienot jauns sveša atslēga ierobežojums ar darbību ON DELETE CASCADE.

Vai tad ārējā atslēga var būt nulles mysql?

5 atbildes. NULLs svešās atslēgas ir pilnīgi pieņemami. Darbs ar NULL svešās atslēgas ir sarežģīti, taču tas nenozīmē, ka šādas kolonnas jāmaina uz NĒ NULL un savās atsauces tabulās ievietojiet fiktīvus ("N/A", "Nezināms", "Nav vērtības" utt.) ierakstus.

Vai ir nepieciešamas ārējās atslēgas?

Tā kā mērķis ārzemju galvenais ir identificēt konkrētu atsauces tabulas rindu, tas parasti ir nepieciešams ka ārzemju atslēga ir vienāda ar kandidātu Atslega ieksa kādu primārās tabulas rindu, vai arī tai nav vērtības (NULL vērtība.). Šo noteikumu sauc par atsauces integritātes ierobežojumu starp abām tabulām.

Ieteicams: