[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-sql-mozhet-li-znachenie-v-stolbtse-s-ogranicheniem-foreign-key-ravnyatsya-null":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},861,"mozhet-li-znachenie-v-stolbtse-s-ogranicheniem-foreign-key-ravnyatsya-null",25,"sql","SQL","🗃️","Может ли значение в столбце с ограничением FOREIGN KEY равняться NULL?","Да, значение в столбце с ограничением `FOREIGN KEY` может быть `NULL`, если на данный столбец не наложено дополнительное ограничение `NOT NULL`. `FOREIGN KEY` проверяет ссылочную целостность только для не-`NULL` значений — если значение равно `NULL`, проверка соответствия в родительской таблице не выполняется.\n\nЭто поведение позволяет моделировать необязательные связи. Например, сотрудник может не иметь руководителя (генеральный директор):\n\n```sql\nCREATE TABLE employees (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(100) NOT NULL,\n    manager_id INT REFERENCES employees(id)  -- может быть NULL\n);\n\n-- Вставка сотрудника без руководителя — допустимо\nINSERT INTO employees (name, manager_id) VALUES ('CEO', NULL);\n```\n\nЕсли связь обязательна (каждый заказ должен принадлежать пользователю), добавьте `NOT NULL`:\n\n```sql\nuser_id INT NOT NULL REFERENCES users(id)\n```\n\n> **На собеседовании:** ответ — да, если нет `NOT NULL`. Частая ошибка — считать, что `FOREIGN KEY` автоматически запрещает `NULL`.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Может ли значение в столбце с ограничением FOREIGN KEY равня — Gymterview","Да, значение в столбце с ограничением `FOREIGN KEY` может быть `NULL`, если на данный столбец не наложено дополнительное ограничение `NOT NULL`. `FOREIGN KEY` п","Да, значение в столбце с ограничением `FOREIGN KEY` может быть `NULL`, если на данный столбец не наложено дополнительное",[7,13],"Да, значение в столбце с ограничением `FOREIGN KEY` может быть `NULL`, если на данный столбец не наложено дополнительное ограничение `NOT NULL`. `FOREIGN KEY` проверяет ссылочную целостность только для не-`NULL` значений — если значение равно `NULL`, проверка соответствия в родительской таблице не в",true]