|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
Есть две таблицы уже заполненные данными. Основная таблица Table1, ID - формат GUIDID. Таблица Table2, в которой в поле IDTable1 находятся GUIDID. Пытаюсь связать посредством Foreign Key эти таблицы по этим полям. Т.е. выбирая Table1.ID, мы должны получить во второй Таблице Table2.IDTable1. Код: sql 1. 2. 3.
Средствами SQL редакторов тоже пробовал. Выдает ошибку: Код: sql 1.
Как можно создать данный FOREIGN KEY? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:01 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
ScendЕсть две таблицы уже заполненные данными. Основная таблица Table1, ID - формат GUIDID. Таблица Table2, в которой в поле IDTable1 находятся GUIDID. Пытаюсь связать посредством Foreign Key эти таблицы по этим полям. Т.е. выбирая Table1.ID, мы должны получить во второй Таблице Table2.IDTable1. так не работает FK, вы что хотите получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:02 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
ScendКак можно создать данный FOREIGN KEY? Сначала привести данные в порядок Сервер за вас не удалит то, что нарушает FK ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:04 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
Glory, подскажите, как проверить, что данные не в порядке и привести их в порядок? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:08 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
для начала приведите здесь скрипты ваших таблиц ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:09 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
ScendGlory, подскажите, как проверить, что данные не в порядке и привести их в порядок? Найти такие значения Table2.IDTable1, которых нет в Table1.ID И либо добавить их в Table1, либо удалить из Table2, либо поменять в Table2 на те, что есть в Table1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2014, 16:12 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
GloryНайти такие значения Table2.IDTable1, которых нет в Table1.ID И либо добавить их в Table1, либо удалить из Table2, либо поменять в Table2 на те, что есть в Table1 Glory, спасибо, помогло. А можно каким-нибудь хитрим способом, не трогая данные в Table1,Table2 создать Foreign Key? Или только можно создать Foreign Key приведя данные в соответствие? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 14:35 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
Ну, разложите себе грабли на будущее с помощью WITH NOCHECK. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 14:39 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
может, вам оно и не надо, именно Foreign Key? вот например эта фраза: ScendПытаюсь связать посредством Foreign Key эти таблицы по этим полям. Т.е. выбирая Table1.ID, мы должны получить во второй Таблице Table2.IDTable1. как бы по идее-то наоборот, в поле Table2.IDTable1 должны попадать только те значения, что имеютя в Table1.ID, и за этим и "следит" Foreign Key. а в Table1.ID могут быть какие угодно (уникальные) значения, совсем они не обязаны находиться еще и в Table2.IDTable1. ScendА можно каким-нибудь хитрим способом, не трогая данные в Table1,Table2 создать Foreign Key? Или только можно создать Foreign Key приведя данные в соответствие? если надо иметь разобщенные данные, то зачем заводить Foreign Key? и если вам просто надо соединять 2 таблицы по полю ID-IDTable1, то и без Foreign Key соединится: Data from two related tables can be combined even if no PRIMARY KEY or FOREIGN KEY constraints are defined between the tables. WITH NOCHECK хорош, если, например, надо заставить студию диаграммы нарисовать со связями, т.е. совсем не по назначению использовать Foreign Key. для завершения занудства приведу тут, зачем нужен Foreign Key: Although the primary purpose of a FOREIGN KEY constraint is to control the data that can be stored in the foreign key table , it also controls changes to data in the primary key table. For example, if the row for a publisher is deleted from the publishers table, and the publisher's ID is used for books in the titles table, the relational integrity between the two tables is broken; the deleted publisher's books are orphaned in the titles table without a link to the data in the publishers table. A FOREIGN KEY constraint prevents this situation. The constraint enforces referential integrity by ensuring that changes cannot be made to data in the primary key table if those changes invalidate the link to data in the foreign key table . If an attempt is made to delete the row in a primary key table or to change a primary key value, the action will fail if the deleted or changed primary key value corresponds to a value in the FOREIGN KEY constraint of another table. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 15:39 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
Foreign Key нужен для соединения этих двух таблиц в специфическом софте, в котором только по Foreign Key можно эти таблицы связать. Исторически сложилось, что данные там %-ов 10 разношерстные, как раз мешающие связи по Foreign Key. Но, эти 10% желательно тоже оставить, т.к. они также играют свою роль. По хорошему конечно хотелось бы привести таблицы к нормализованному виду, но исторические данные мешают этому, т.к. являются важными в данном конкретном случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 16:26 |
|
Не создается Foreign Key
|
|||
---|---|---|---|
#18+
ScendForeign Key нужен для соединения этих двух таблиц в специфическом софте, в котором только по Foreign Key можно эти таблицы связать. Исторически сложилось, что данные там %-ов 10 разношерстные, как раз мешающие связи по Foreign Key. Но, эти 10% желательно тоже оставить, т.к. они также играют свою роль. По хорошему конечно хотелось бы привести таблицы к нормализованному виду, но исторические данные мешают этому, т.к. являются важными в данном конкретном случае. наблюдается противоречение: если софт опирается на foreign key при своей работе, то в его таблицах вообще не имеет смысл держать важные рассогласованные данные, т.к. этот софт не смог бы с ними работать даже если каким-то чудом вам удалось бы их туда поместить. выносите такие данные в отдельную таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2014, 16:48 |
|
|
start [/forum/topic.php?fid=46&msg=38726899&tid=1700937]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 263ms |
0 / 0 |