Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание внешнего ключа!!!

21K
20 марта 2008 года
yalovenko_alexandr
34 / / 13.02.2008
Добрый, Добрый День!!!
Объясните мне пожалуйста что это за ошибку выдает мне IB Expert при создание внешнего ключа:
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "PK_RASH_INS" on table "RASH_INS".
Foreign key reference target does not exist.
Скрипт -alter table RASH_PO_FACT add constraint FK_RASH_PO_FACT_1
foreign key (NOM_RASH) references RASH_INS(NOM_RASH)
Использую FB2.0
Структура таблиц такая:
Таблица Rash_ins (ord_num,nomenk_numb,kol_ins_rash,nom_rash),
Таблица Rash_po_Fact (rash_fact,data_fact,nom_rash);
11
20 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: yalovenko_alexandr
Добрый, Добрый День!!!
Объясните мне пожалуйста что это за ошибку выдает мне IB Expert при создание внешнего ключа:
violation of FOREIGN KEY constraint "".
violation of FOREIGN KEY constraint "PK_RASH_INS" on table "RASH_INS".
Foreign key reference target does not exist.
Скрипт -alter table RASH_PO_FACT add constraint FK_RASH_PO_FACT_1
foreign key (NOM_RASH) references RASH_INS(NOM_RASH)
Использую FB2.0
Структура таблиц такая:
Таблица Rash_ins (ord_num,nomenk_numb,kol_ins_rash,nom_rash),
Таблица Rash_po_Fact (rash_fact,data_fact,nom_rash);



Цитата:

Имейте в виду, что при использовании ALTER TABLE вместо CREATE TABLE, для применения ограничения FOREIGN KEY, значения которые Вы указываете во внешнем ключе и родительском ключе, должны быть в состоянии справочной целостности. Иначе команда будет отклонена. Хотя ALTER TABLE очень полезна из-за ее удобства, вы должны будете в вашей системе, по возможности каждый раз, сначала формировать структурные принципы, типа справочной целостности.



м.б. из за отсутсвия справочной целостности

21K
21 марта 2008 года
yalovenko_alexandr
34 / / 13.02.2008
Цитата: oxotnik333
м.б. из за отсутсвия справочной целостности



Спасибо тебе oxotnik333!А не подскажешь как этого всего можно избежать?Что нужно выполнить чтоб создать справочную целостность и где можно взять литературу по этому поводу?В <Хелен Борри > такого не раскрыто!!!

11
21 марта 2008 года
oxotnik333
2.9K / / 03.08.2007
Цитата: yalovenko_alexandr
Спасибо тебе oxotnik333!А не подскажешь как этого всего можно избежать?Что нужно выполнить чтоб создать справочную целостность и где можно взять литературу по этому поводу?В <Хелен Борри > такого не раскрыто!!!



вот статейка по поводу целостности и внешних ключей... м.б есть там что интересное по теме

21K
21 марта 2008 года
yalovenko_alexandr
34 / / 13.02.2008
Цитата: oxotnik333
вот статейка по поводу целостности и внешних ключей... м.б есть там что интересное по теме



Спасибо!!!

3.2K
22 марта 2008 года
Гудвин
186 / / 22.12.2007
помогите с запросом. использую MySQL 5.0+ADO
первая таблица создаётся без проблем:
Код:
CREATE TABLE diagram0_objects
(
id_obj integer NOT NULL AUTO_INCREMENT,
X_ Integer DEFAULT '0' NOT NULL,
Y_ Integer DEFAULT '0' NOT NULL,
H_ Integer DEFAULT '0' NOT NULL,
W_ Integer DEFAULT '0' NOT NULL,
Who_ Integer DEFAULT '0' NOT NULL,
tag_ Integer DEFAULT '0' NOT NULL,
type_ smallint DEFAULT '0' NOT NULL,
str_ CHAR(25) NOT NULL,
PRIMARY KEY (id_obj));

на вторую, после того как добавил фк, начинает ругаеться, говорит can't create table diagram0_objects_attributes.frm (errno: 150)

 
Код:
CREATE TABLE diagram0_objects_attributes
(
id_obj_attr integer UNSIGNED NOT NULL AUTO_INCREMENT,
Index_obj Integer DEFAULT '0' NOT NULL,
str_ CHAR(25) NOT NULL,
PRIMARY KEY (id_obj_attr),
FOREIGN KEY (Index_obj) REFERENCES diagram0_objects
);

чево ему не хватает?
8.2K
23 марта 2008 года
Ora-cool
211 / / 20.09.2007
Цитата: Гудвин

чево ему не хватает?


Как минимум вы не указали на какой столбец таблицы ссылается внешний ключ.

3.2K
23 марта 2008 года
Гудвин
186 / / 22.12.2007
спасибо сработало) а я почему-то думал что если не указывать то он будет ссылаться по умолчанию на праймари кей
3.2K
10 сентября 2008 года
Гудвин
186 / / 22.12.2007
помогите разобраться.
есть две таблицы
Код:
CREATE TABLE `bd_auto` (
  `ID_AUTO` int(11) NOT NULL auto_increment,
  `LINE` tinytext NOT NULL,
  PRIMARY KEY  (`ID_AUTO`)
);
CREATE TABLE `bd_auto_set` (
  `ID_SET` int(11) NOT NULL auto_increment,
  `INDEX_TABLE` int(11) NOT NULL default '0',
  `LINE` tinytext NOT NULL,
  `QUOTE` tinytext NOT NULL,  
  FOREIGN KEY (INDEX_TABLE) REFERENCES `bd_auto` (ID_AUTO) ON DELETE CASCADE,
  PRIMARY KEY  (`ID_SET`)
);

я так понимаю при удалении из bd_auto автоматически должны удаляться дочерние записи из bd_auto_set, но вылезает ошибка:

Cannot delete or update a parent row: a foreign key constraint fails

Приходится вручную транзакцией очищать дочернюю таблицу а потом удалять эту запись. В чем ошибка?:confused:
8.2K
10 сентября 2008 года
Ora-cool
211 / / 20.09.2007
А может есть другие таблицы, ссылающиеся на bd_auto?
3.2K
10 сентября 2008 года
Гудвин
186 / / 22.12.2007
нет, ни одной. просто это не одна такая связь, и везде такая же ситуация.:(
1
10 сентября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: Гудвин

Приходится вручную транзакцией очищать дочернюю таблицу а потом удалять эту запись. В чем ошибка?:confused:


Каскадное удаление возможно только для таблиц InnoDB

3.2K
11 сентября 2008 года
Гудвин
186 / / 22.12.2007
спасибо, разобрался.:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог