Կարո՞ղ է օտարերկրյա բանալին լինել null Postgres:
Կարո՞ղ է օտարերկրյա բանալին լինել null Postgres:

Video: Կարո՞ղ է օտարերկրյա բանալին լինել null Postgres:

Video: Կարո՞ղ է օտարերկրյա բանալին լինել null Postgres:
Video: Покинутый дом_Рассказ_Слушать 2024, Մայիս
Anonim

INSERT INTO արտադրանքի արժեքների մեջ (11, «Ջոյի համար», 1); ՆԵՐԴՐԵՔ ապրանքի արժեքների մեջ (22, «բոլորի համար», ԴԱՏԱՐԿ ); Միանգամայն օրինական է չեղյալ համարել օտար բանալի սյունակ.

Նաև հարց է առաջանում՝ կարո՞ղ է արդյոք օտար բանալին զրոյական լինել:

Ա օտար բանալի իր աղյուսակը կախված է մեկ այլ աղյուսակից, որը կոչվում է մայր աղյուսակ: Ա օտար բանալի Պարունակող դատարկ արժեքները չեն կարող համապատասխանել ծնողի արժեքներին բանալի , քանի որ ծնող բանալի ըստ սահմանման կարող է չունեն դատարկ արժեքներ։ Այնուամենայնիվ, Ա null օտար բանալի արժեքը միշտ վավեր է՝ անկախ դրա արժեքից դատարկ մասեր.

Բացի այդ, ինչպե՞ս կարող եմ օտար բանալի ավելացնել PostgreSQL-ում: ԱՎԵԼԱՑՆԵԼ CONSTRAINT constraint_name ՕՏԱՐ ԲԱՆԱԼԻ (c1) Հղումներ ծնող_աղյուսակ (p1); Մեկ վերջնական նշում, երբ ուզում ես ավելացնել օտարերկրյա բանալի Սահմանափակելով ON DELETE CASCADE-ը գոյություն ունեցող աղյուսակում, դուք պետք է կատարեք հետևյալ քայլերը. օտար բանալի սահմանափակում. Ավելացնել մի նոր օտար բանալի սահմանափակում ON DELETE CASCADE գործողությամբ:

Հետո, կարո՞ղ է օտարերկրյա բանալին լինել null mysql:

5 Պատասխաններ. NULLs in օտարերկրյա բանալիներ միանգամայն ընդունելի են։ Գործում է NULL-ների հետ օտարերկրյա բանալիներ դժվար է, բայց դա չի նշանակում, որ դուք փոխում եք նման սյունակները NOT-ի ԴԱՏԱՐԿ և տեղադրեք կեղծ («N/A», «Unknown», «No Value» և այլն) գրառումները ձեր հղման աղյուսակներում:

Արդյո՞ք օտարերկրյա բանալիներ են պահանջվում:

Քանի որ նպատակը օտարերկրյա հիմնականը նշված աղյուսակի որոշակի տող բացահայտելն է, դա ընդհանուր առմամբ պահանջվում է որ օտարերկրյա բանալին հավասար է թեկնածուին մուտքագրել առաջնային աղյուսակի որոշ տող, այլապես արժեք չունեն (NULL արժեքը): Այս կանոնը կոչվում է հղումային ամբողջականության սահմանափակում երկու աղյուսակների միջև:

Խորհուրդ ենք տալիս: