Ufunguo wa kigeni unaweza kuwa batili Postgres?
Ufunguo wa kigeni unaweza kuwa batili Postgres?

Video: Ufunguo wa kigeni unaweza kuwa batili Postgres?

Video: Ufunguo wa kigeni unaweza kuwa batili Postgres?
Video: Веб-программирование — информатика для бизнес-лидеров 2016 2024, Novemba
Anonim

WEKA NDANI YA MAADILI ya bidhaa (11, 'kwa Joe', 1); INGIZA MAADILI YA bidhaa (22, 'kwa wote', NULL ); Ni halali kabisa kuwa na ubatilishaji ufunguo wa kigeni safu.

Swali pia ni, ufunguo wa kigeni unaweza kuwa batili?

A ufunguo wa kigeni hufanya jedwali lake kutegemea jedwali lingine linaloitwa jedwali la wazazi. A ufunguo wa kigeni zenye null maadili hayawezi kulingana na maadili ya mzazi ufunguo , tangu mzazi ufunguo kwa ufafanuzi unaweza hawana null maadili. Hata hivyo, a null ufunguo wa kigeni thamani daima ni halali, bila kujali thamani ya yoyote ya null sehemu.

Kwa kuongeza, ninawezaje kuongeza kitufe cha kigeni katika PostgreSQL? ONGEZA CONSTRAINT constraint_name UFUNGUO WA NJE (c1) MAREJEO jedwali_la_mzazi (p1); Ujumbe mmoja wa mwisho unapotaka ongeza ufunguo wa kigeni kizuizi na ON DELETE CASCADE kwa jedwali lililopo, unahitaji kufanya hatua zifuatazo: Achia zilizopo ufunguo wa kigeni kizuizi. Ongeza mpya ufunguo wa kigeni kikwazo na kitendo cha KUFUTA CASCADE.

Halafu, ufunguo wa kigeni unaweza kuwa null mysql?

5 Majibu. NULLs ndani funguo za kigeni zinakubalika kabisa. Kushughulika na NULLs ndani funguo za kigeni ni gumu lakini hiyo haimaanishi kuwa unabadilisha safu wima kama hizo kuwa NOT NULL na uweke rekodi za dummy ("N/A", "Haijulikani", "Hakuna Thamani" n.k) katika majedwali yako ya marejeleo.

Je, funguo za kigeni zinahitajika?

Kwa kuwa madhumuni ya kigeni muhimu ni kutambua safu fulani ya jedwali iliyorejelewa, kwa ujumla ni inahitajika kwamba kigeni ufunguo ni sawa na mgombea ufunguo katika safu kadhaa za jedwali la msingi, au sivyo hazina thamani (thamani NULL.). Sheria hii inaitwa kizuizi cha uadilifu wa marejeleo kati ya majedwali haya mawili.

Ilipendekeza: