Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677

Не привязывается внешний ключ при одинаковых по типу столбиках

19.12.2017, 11:31. Показов 1898. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как хорошо видно на большом скриншоте, у столбиков которые я хочу соединить одинаковый по всем параметрам тип. Но операция завершается ошибкой.
Что-то я не так делаю?
Миниатюры
Не привязывается внешний ключ при одинаковых по типу столбиках   Не привязывается внешний ключ при одинаковых по типу столбиках   Не привязывается внешний ключ при одинаковых по типу столбиках  

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2017, 11:31
Ответы с готовыми решениями:

Внешний ключ - это простой ключ?
Что это такое? Я не понимать. Как простой ключ в тоже время является простым. Что за магия?

Не привязывается сокет при создании сервера
#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h>...

внешний ключ
есть две таблицы CREATE TABLE STAFF (ID integer NOT NULL PRIMARY KEY, lastName varchar (30) NOT NULL, ... PosID...

16
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
19.12.2017, 11:38
Цитата Сообщение от SrgKord Посмотреть сообщение
у столбиков которые я хочу соединить одинаковый по всем параметрам тип
Угу. У одного nchar(50), у другого nchar(30).
0
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
19.12.2017, 16:09
И очень, конечно, мудро делать ключ на nchar(50)...
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
19.12.2017, 16:34
Цитата Сообщение от AsTerra Посмотреть сообщение
И очень, конечно, мудро делать ключ на nchar(50)...
и что благородный дон имеет против такого типа ключа?
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
21.12.2017, 09:33  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
Угу. У одного nchar(50), у другого nchar(30).
Не согласен, в обоих случаях явно указано nchar(50)

Цитата Сообщение от AsTerra Посмотреть сообщение
И очень, конечно, мудро делать ключ на nchar(50)...
Расскажите, как правильно делать тогда?
Название организации просто не предполагается повторять, вот я и решил ключем сделать
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
21.12.2017, 11:04
Цитата Сообщение от SrgKord Посмотреть сообщение
Не согласен, в обоих случаях явно указано nchar(50)
Попробуйте еще раз внимательно изучить собственную картинку на предмет выяснения где указано nchar(50), а где nchar(30).
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
22.12.2017, 05:12  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
Попробуйте еще раз внимательно изучить собственную картинку на предмет выяснения где указано nchar(50), а где nchar(30).
Точно, сам запутался. В обоих случаях, где красная точка стоит nchar(50), но в одном случае может быть Null, в другом - нет.

Добавлено через 1 минуту
Да и вообще, не там я точку поставил в нижней картинке, надо было на ключе CompID сделать, сразу бы заметил
0
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
24.12.2017, 12:28
Расскажите, как правильно делать тогда?
Ежели у вас есть таблица Companies, не логично ли вместо PersonCompany сделать PersonCompanyId? И индексы будут легче, если понадобятся.
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
26.12.2017, 09:38  [ТС]
Цитата Сообщение от ai-zer Посмотреть сообщение
Ежели у вас есть таблица Companies, не логично ли вместо PersonCompany сделать PersonCompanyId? И индексы будут легче, если понадобятся.
Для меня пока загадка, какое значение будет возвращаться, если внешний ключ таблицы А будет ссылаться на первичный ключ таблицы Б. Я боюсь, что получится в запросе нечно вроде:

Добавлено через 9 минут
PersonIDPersonLoginPersonNamePersonCompanyID
1ManchinLNМанчин12
2SveridovLPСверидов25
3SahipovBVСахипов34
0
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
26.12.2017, 13:22
Здравствуйте!

У выделенных столбцов на большом скриншоте один тип и одна длина:
dbo.Persons.PersonCompany
dbo.Companies.CompAddr
nchar(50)

но ошибка выдаётся по поводу другого столбца (первый скриншот):
dbo.Companies.CompName

и там длина действительно 30
это видно на большом скриншоте
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
26.12.2017, 13:26  [ТС]
TinSemenova, благодарю, я заметил, что сам накосячил. Если разбираетесь, подскажите, внешний ключ должен ссылаться на первичный ключ или на то поле, из которого данные нам нужны?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
26.12.2017, 13:29
Цитата Сообщение от SrgKord Посмотреть сообщение
внешний ключ должен ссылаться на первичный ключ или на то поле, из которого данные нам нужны?
переведите

Добавлено через 37 секунд
есть подозрение что есть полное непонимание FK
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
26.12.2017, 14:12
Цитата Сообщение от SrgKord Посмотреть сообщение
TinSemenova, благодарю, я заметил, что сам накосячил. Если разбираетесь, подскажите, внешний ключ должен ссылаться на первичный ключ или на то поле, из которого данные нам нужны?
Он должен ссылаться на поле или группу полей, по которым построен уникальный индекс.
Создание первичного ключа или уникального констрейнта приводит к созданию уникального индекса автоматически.
0
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
26.12.2017, 20:49
Здравствуйте!

"Внешний ключ (FK) — это столбец или сочетание столбцов, которое применяется для принудительного установления связи между данными в двух таблицах. Внешний ключ можно создать, определив ограничение FOREIGN KEY при создании или изменении таблицы.Ограничение FOREIGN KEY не обязательно должно быть связано с ограничением PRIMARY KEY в другой таблице."
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
27.12.2017, 08:55
а я-то глюпый всегда свято верил в то, что FK нужен для обеспечения ссылочной целостности. Фу мне..
0
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
27.12.2017, 11:20
Цитата Сообщение от SrgKord Посмотреть сообщение
Я боюсь, что получится в запросе нечно вроде:
SrgKord, не бойтесь, почитайте про join, представления.
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
28.12.2017, 05:07  [ТС]
pincet, iap, TinSemenova, я, пожалуй, ещё теорию почитаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2017, 05:07
Помогаю со студенческими работами здесь

Внешний ключ
Не могу создать внешней ключ, помогите решить проблему: CREATE TABLE STAFF (staff_no int IDENTITY(1,1) NOT NULL, Branch_no int NOT...

Внешний ключ
Здравствуйте. Существует некоторая база данных по учету запасов товаров. Возникла проблема со связью таблиц... При создании связи между...

Внешний ключ
Есть две таблицы User и Konsultachii <?php include_once "connection.php"; session_start(); $id1="SELECT id FROM User WHERE...

Внешний ключ
Имеются 3 таблицы: CREATE TABLE usr ( usr_id int AUTO_INCREMENT NOT NULL, first varchar(25) NOT NULL, ...

Внешний ключ
Добрый вечер, господа. Нужна ваша помощь. Говорю честно, листал миллион форумов и не нашел ответа на свой вопрос. Есть две таблицы ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru