|
|
|
Вопрос про FK
|
|||
|---|---|---|---|
|
#18+
Всем привет! Возникла следущая проблема, нужно сделать таблицу которая бы содержала вторичный ключ, при этом допускались значения NULL, то есть поле было не обязательным. До этого работал на MS SQL, сейчас нужно сделать на IB, по аналогии не получается. Код ошибки: [INTERSOLV][ODBC InterBase driver][InterBase]unsuccessful metadata update, object DHUMANNAMES is in use Execution Failed! Версия IB 5.6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 11:45 |
|
||
|
Вопрос про FK
|
|||
|---|---|---|---|
|
#18+
Сделай обязательным. Поставь туда не NULL, а 0! Вот и всё. В справочной таблице тоже должна быть запись с ID=0. Не нравится 0 - сделай -1. В клиентском приложении обработай события OnGetText и OnSetText. Через OnGetText подсунь пользователю NULL, а в OnSetText если пользователь ничего не написал или всё стёр присвой значение поля 0. И вообще насколько я понял IB он просто ненавидит NULL и сажает из-за них скорость! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 11:56 |
|
||
|
Вопрос про FK
|
|||
|---|---|---|---|
|
#18+
Я тоже про этот вариат думал. Мне просто интересно это нельзя сделать или я не докопался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 12:01 |
|
||
|
Вопрос про FK
|
|||
|---|---|---|---|
|
#18+
Если подходить чисто логически, то возможно. Т.к. в правилах обновления FK ON DELETE, ON UPDATE есть директива SET NULL. Насколько я помню это означает, что следует в поле внешнего ключа у записей дочерней таблицы каскадом занести значение NULL при удалении или изменении поля связи в записи родительской таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 13:20 |
|
||
|
Вопрос про FK
|
|||
|---|---|---|---|
|
#18+
Полностью согласен со Zmeishe. Правда FB 1.5 позволяет делать FK c не-NULL значениями, но если такое встречается - FK не отрабатывает. Вроде бы обещали такое в FB 2. Если уж очень нужно - напиши триггер (можно один на Insert/Update/Delete). Кстати внешние ключи сами неявно преобразуются в системные триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 13:20 |
|
||
|
Вопрос про FK
|
|||
|---|---|---|---|
|
#18+
вот простой пример в одной таблице. parent_id может быть как null так и не null. проверено, работает. CREATE TABLE wwww ( id integer NOT NULL, parent_id integer, name varchar(12123) ); ALTER TABLE wwww ADD CONSTRAINT PK_wwww PRIMARY KEY (ID); ALTER TABLE wwww ADD CONSTRAINT FK_wwww_id FOREIGN KEY (PARENT_ID) REFERENCES wwww (ID); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2003, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32227253&tid=1580147]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 423ms |

| 0 / 0 |
