Chet el kaliti Postgres null bo'lishi mumkinmi?
Chet el kaliti Postgres null bo'lishi mumkinmi?

Video: Chet el kaliti Postgres null bo'lishi mumkinmi?

Video: Chet el kaliti Postgres null bo'lishi mumkinmi?
Video: Omad uchun bit busa 2024, Noyabr
Anonim

INSERT INTO INTO VAVALUES (11, 'uchun Joe', 1); INSERT INTO MAVALUES (22, 'hamma uchun', NULL ); Null qiymatga ega bo'lish mutlaqo qonuniydir xorijiy kalit ustun.

Bundan tashqari, savol tug'iladi, chet el kaliti null bo'lishi mumkinmi?

A xorijiy kalit uning jadvalini ota-jadval deb ataladigan boshqa jadvalga bog'liq qiladi. A xorijiy kalit o'z ichiga olgan null qiymatlar ota-ona qiymatlariga mos kela olmaydi kalit , ota-onadan beri kalit ta'rifi bo'yicha mumkin yo'q null qiymatlar. Biroq, a null xorijiy kalit qiymat har doim o'ziga tegishli bo'lmagan qiymatlardan qat'iy nazar amal qiladi. null qismlar.

Bundan tashqari, PostgreSQL-da chet el kalitini qanday qo'shishim mumkin? QO'SHISH CONSTRAINT cheklash_nomi Xorijiy kalit (c1) MA'LUMOTLAR ota_jadval (p1); Istaganingizda bitta oxirgi eslatma chet el kalitini qo'shing ON DELETE CASCADE bilan mavjud jadvalga cheklov qo'yish uchun siz quyidagi amallarni bajarishingiz kerak: Mavjudni o'chirib tashlang. xorijiy kalit cheklash. Qo'shish yangi xorijiy kalit ON DELETE CASCADE harakati bilan cheklash.

Xo'sh, chet el kaliti null MySQL bo'lishi mumkinmi?

5 ta javob. NULLlar ichida chet el kalitlari mutlaqo qabul qilinadi. NULLlar bilan ishlash chet el kalitlari qiyin, lekin bu siz bunday ustunlarni EMAS ga o'zgartirasiz degani emas NULL va mos yozuvlar jadvallaringizga qo'g'irchoq ("Yo'q", "Noma'lum", "Qiymat yo'q" va hokazo) yozuvlarni qo'shing.

Chet el kalitlari kerakmi?

Maqsadidan beri xorijiy Asosiysi, havola qilingan jadvalning ma'lum bir qatorini aniqlashdir, bu odatda talab qilinadi bu xorijiy kalit nomzodga teng kiriting asosiy jadvalning ba'zi qatorlari yoki hech qanday qiymatga ega emas (NULL qiymati). Ushbu qoida ikkita jadval o'rtasidagi referent yaxlitlik cheklovi deb ataladi.

Tavsiya: