|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.05.2010, 18:23 | #11 |
Форумчанин
Регистрация: 15.06.2008
Сообщений: 271
|
У тебя обе таблицы пусты или уже наполнены данными? Если уже наполнены какими-либо данными, то рассмотрим такой вариант. Есть ли у тебя в таблице passport записи со значениями fioid, которых нет в таблице fio?
В общем, выполни такой запрос: Код:
Код:
|
18.05.2010, 23:55 | #12 |
Форумчанин
Регистрация: 20.07.2009
Сообщений: 421
|
у меня в таблице passport 5 записей(1.2.3.4.5)а в таблице fio 7-8,но тут счет идет уже с 15-и.и при запросе
Код:
я тут щас пробовал и вот че,когда я поменял столбей(fioid) в таблице пасспорт,просто сделал его не идентефицирующим и оставил просто как bigint,и после это сделал Код:
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
Последний раз редактировалось betirsolt; 19.05.2010 в 00:04. |
19.05.2010, 07:10 | #13 | |
Форумчанин
Регистрация: 15.06.2008
Сообщений: 271
|
Вот в этом и заключается твоя проблема. Факт нарушения ссылочной целостности. В дочерней таблице есть записи, для которых нет соответствующих записей в родительской таблице.
Кто тебе это сказал? Если ты хочешь задать FK, то они у тебя как раз и должны совпадать. Для того чтобы сделать выборку из двух таблиц - необязательно задавать FK, хотя они и указывают на явное наличие связей между таблицами. Внешние ключи обеспечивают целостность данных, тогда как в противном случае ( если не задать FK ) тебе за этим придется следить самому. Цитата:
Сперва разберись с данными в таблицах. Устрани нарушения ссылочной целостности. А потом если будет нужно, то пробежимся и по структуре таблиц. |
|
20.05.2010, 19:14 | #14 |
Форумчанин
Регистрация: 20.07.2009
Сообщений: 421
|
ну когда я задам FK сервер разве не следит сам за тем чтоб данные в PK таблицы FIO и FK других таблиц совпадали?короче я запутался,давайте сначала,я удалил все записи из таблиц,и теперь у меня только один PK в таблице fio а в остальных никаких ключей и отношений нет.что делать теперь?по шагам если можно
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
|
21.05.2010, 06:47 | #15 |
Форумчанин
Регистрация: 15.06.2008
Сообщений: 271
|
Вот именно - когда задашь...
А пока ты не смог задать FK (вернее, это тебе сервер не позволил) потому что имелись нарушения ссылочной целостности. Теперь после того, как ты удалил все записи из родительской и дочерней таблиц попробуй снова выполнить: Код:
|
21.05.2010, 19:48 | #16 |
Форумчанин
Регистрация: 20.07.2009
Сообщений: 421
|
вот теперь команда выполнена успешно))и у меня в таблице теперь FK который ссылается на PK таблицы fio,все верно?значит я должен точно также добавить FK и в другие таблицы?
блин теперь проблема с инсертом((когда я в своей проге заполняю все данные и нажимаю ОК то дельфи выдает конфликт инструкции инсерт с ограничением внешнего ключа K_FIOID....блин что же такое?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
Последний раз редактировалось betirsolt; 21.05.2010 в 21:23. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
delphi+sql server 2005 как соединиться с базой? | betirsolt | БД в Delphi | 5 | 04.05.2010 19:47 |
SQL связать поля | Virga | БД в Delphi | 1 | 24.08.2009 12:52 |
Доступ к БД (SQL server) в ОС Windows server 2003 | Mann | SQL, базы данных | 2 | 07.12.2008 19:15 |
как связать поля разных типов | doncova1 | Microsoft Office Access | 5 | 11.03.2008 00:15 |
Как сделать MS SQL логические поля? | Azamat_k | БД в Delphi | 0 | 04.04.2007 13:42 |