Чет элдик ачкыч Postgres нөл болушу мүмкүнбү?
Чет элдик ачкыч Postgres нөл болушу мүмкүнбү?

Video: Чет элдик ачкыч Postgres нөл болушу мүмкүнбү?

Video: Чет элдик ачкыч Postgres нөл болушу мүмкүнбү?
Video: Эс ачкыч сабактан узунду 2024, Май
Anonim

INSERT INTO product VAVAES (11, "Джо үчүн", 1); INSERT INTO product VALUES (22, "бардыгы үчүн", НӨЛ ); Бул нөлгө ээ болуу толук мыйзамдуу чет элдик ачкыч тилке.

Ошондой эле суроо туулат, чет элдик ачкыч нөл болушу мүмкүнбү?

А чет элдик ачкыч анын таблицасын ата-энелик таблица деп аталган башка таблицага көз каранды кылат. А чет элдик ачкыч камтыган нөл баалуулуктар ата-эненин баалуулуктарына дал келбейт ачкыч , ата-энеден бери ачкыч аныктама боюнча болот жок нөл баалуулуктар. Бирок, а null чет элдик ачкыч баалуулугу, анын кандайдыр бир баалуулугуна карабастан, ар дайым жарактуу нөл бөлүктөр.

Кошумча, PostgreSQLге чет өлкөлүк ачкычты кантип кошом? КОШУУ CONSTRAINT чектөө_аты Тышкы ачкыч (c1) RERERENCES parent_table (p1); Кааласаңыз, акыркы эскертүү чет элдик ачкыч кошуу Учурдагы таблицага ON DELETE CASCADE менен чектөө, сиз төмөнкү кадамдарды жасашыңыз керек: Учурдагыларды өчүрүү чет элдик ачкыч чектөө. кошуу жаңы чет элдик ачкыч ON DELETE CASCADE аракети менен чектөө.

Анда чет өлкөлүк ачкыч null MySQL болушу мүмкүнбү?

5 Жооптор. NULLs in чет өлкөлүк ачкычтар толугу менен кабыл алынат. NULL менен иштөө чет өлкөлүк ачкычтар татаал, бирок бул сиз мындай мамычаларды ЭМЕС деп өзгөртөсүз дегенди билдирбейт НӨЛ жана шилтеме таблицаларыңызга жасалма ("Жок", "Белгисиз", "Баалуу жок" ж.б.) жазууларды киргизиңиз.

Чет элдик ачкычтар керекпи?

Максатынан бери чет элдик негизги шилтеме столдун белгилүү бир катар аныктоо болуп саналат, ал жалпысынан болуп саналат талап кылынат ошол чет элдик ачкыч талапкерге барабар киргизиңиз негизги таблицанын кээ бир саптары же мааниси жок (NULL мааниси.). Бул эреже эки таблица ортосундагы шилтеме бүтүндүгүн чектөө деп аталат.

Сунушталууда: