
2025 ავტორი: Lynn Donovan | [email protected]. ბოლოს შეცვლილი: 2025-01-22 17:29
INSERT INTO პროდუქტის ღირებულებებში (11, 'ჯოსთვის', 1); ჩადეთ პროდუქტის ღირებულებებში (22, „ყველასთვის“, NULL ); სავსებით ლეგალურია ბათილის ქონა უცხოური გასაღები სვეტი.
ასევე კითხვაა, შეიძლება თუ არა უცხოური გასაღები იყოს ნული?
ა უცხოური გასაღები ხდის მის ცხრილს დამოკიდებულს სხვა ცხრილზე, რომელსაც ეწოდება მშობელი ცხრილი. ა უცხოური გასაღები შემცველი null მნიშვნელობები არ შეიძლება ემთხვეოდეს მშობლის მნიშვნელობებს გასაღები , როგორც მშობელი გასაღები განმარტებით შეუძლია არ აქვს null ღირებულებები. თუმცა, ა null უცხო გასაღები ღირებულება ყოველთვის მოქმედებს, მიუხედავად მისი ნებისმიერი არა-მნიშვნელობისა null ნაწილები.
გარდა ამისა, როგორ დავამატო უცხო გასაღები PostgreSQL-ში? დამატება CONSTRAINT constraint_name ᲣᲪᲮᲝᲣᲠᲘ ᲒᲐᲡᲐᲦᲔᲑᲘ (c1) ლიტერატურა მშობელი_ცხრილი (p1); ერთი ბოლო შენიშვნა, როცა გინდა დაამატეთ უცხო გასაღები შეზღუდვა ON DELETE CASCADE-ით არსებულ ცხრილზე, თქვენ უნდა შეასრულოთ შემდეგი ნაბიჯები: ჩამოაგდეთ არსებული უცხოური გასაღები შეზღუდვა. დამატება ახალი უცხოური გასაღები შეზღუდვა ON DELETE CASCADE მოქმედებით.
მაშინ, შეიძლება უცხო გასაღები იყოს null mysql?
5 პასუხი. NULLs in უცხო გასაღებები სავსებით მისაღებია. საქმე NULL-ებთან უცხო გასაღებები რთულია, მაგრამ ეს არ ნიშნავს, რომ თქვენ შეცვლით ასეთ სვეტებს NOT-ით NULL და ჩადეთ მატყუარა ("N/A", "Unknown", "No Value" და ა.შ.) ჩანაწერები თქვენს საცნობარო ცხრილებში.
საჭიროა უცხოური გასაღებები?
მას შემდეგ, რაც დანიშნულება უცხოური მთავარია მითითებული ცხრილის კონკრეტული რიგის იდენტიფიცირება, ეს ზოგადად საჭირო რომ უცხოური გასაღები კანდიდატის ტოლია ჩასმა პირველადი ცხრილის ზოგიერთ მწკრივს, ან სხვაგვარად არ აქვს მნიშვნელობა (NULL მნიშვნელობა.). ამ წესს ეწოდება რეფერენციალური მთლიანობის შეზღუდვა ორ ცხრილს შორის.
გირჩევთ:
შეიძლება სვეტს ჰქონდეს მრავალი უცხო გასაღები?

თეორიულად, თქვენ არ შეგიძლიათ განახორციელოთ მრავალი უცხო გასაღები ერთ სვეტზე. ალტერნატიულად, შეგიძლიათ განახორციელოთ ეს პროცედურების გამოყენებით, სადაც ამოწმებთ შეყვანას, რომელიც არსებობს მრავალ ცხრილში და აკეთებთ საჭირო ოპერაციას
შეიძლება თუ არა ერთ ძირითად გასაღებს ჰქონდეს ორი უცხო გასაღები?

სავსებით კარგია, რომ გქონდეთ ორი უცხო გასაღების სვეტი, რომლებიც მიუთითებენ იმავე პირველადი გასაღების სვეტზე სხვადასხვა ცხრილში, რადგან თითოეული უცხო გასაღების მნიშვნელობა მიუთითებს განსხვავებულ ჩანაწერზე შესაბამის ცხრილში
შეიძლება თუ არა პირველადი გასაღები იყოს უცხო გასაღები?

პირველადი გასაღებები ყოველთვის უნდა იყოს უნიკალური, უცხოურმა გასაღებებმა უნდა დაუშვან არაუნიკალური მნიშვნელობები, თუ ცხრილი არის ერთი-მრავალზე ურთიერთობა. სავსებით კარგია გამოიყენოთ უცხო გასაღები, როგორც პირველადი გასაღები, თუ ცხრილი დაკავშირებულია ერთი-ერთ-ერთთან და არა ერთ-ერთ-მრავალთან ურთიერთობით
შეუძლია თუ არა უცხო გასაღების სხვა უცხო გასაღების მითითება?

1 პასუხი. უცხო კლავიშს შეუძლია მიმართოს ნებისმიერ ველს, რომელიც განსაზღვრულია როგორც უნიკალური. თუ ეს უნიკალური ველი თავად არის განსაზღვრული, როგორც უცხო გასაღები, არავითარი მნიშვნელობა არ აქვს. თუ ეს უნიკალური ველია, ის ასევე შეიძლება იყოს სხვა FK-ის სამიზნე
შეიძლება კომპოზიციური გასაღები იყოს უნიკალური?

კომპოზიციური უნიკალური გასაღები არის უნიკალური გასაღები, რომელიც შედგება სვეტების კომბინაციით. შეზღუდვის დასაკმაყოფილებლად, რომელიც განსაზღვრავს კომპოზიციურ უნიკალურ კლავიშს, ცხრილში არცერთ ორ სტრიქონს არ შეიძლება ჰქონდეს მნიშვნელობების იგივე კომბინაცია საკვანძო სვეტებში