Quantcast
Channel: SQL.ru: Firebird, InterBase
Viewing all articles
Browse latest Browse all 1677

Перекрестное связывание двух таблиц

$
0
0
Привет всем.

Гугл спрашивал, не нашел ответа. В FAQ смотрел, тоже не нашел ответа.

Я мигрирую с SQLite, может быть он позволяет себе лишнего.
Версия Firebird 2.5.

Хочу: Связать две таблицы по внешним ключам.
"AA" ссылается на "BB" , "BB" ссылается на "AA"

делаю:
CREATE TABLE AA (
  aa_id integer NOT NULL PRIMARY KEY
  ,bb_id integer NOT NULL  
  ,CONSTRAINT c_bb_id FOREIGN KEY(bb_id)
    REFERENCES bb(id) ON DELETE NO ACTION
  )  ;


CREATE TABLE BB (
  bb_id integer NOT NULL PRIMARY KEY
  ,aa_id integer NOT NULL  
  ,CONSTRAINT c_aa_id FOREIGN KEY(aa_id)
    REFERENCES aa(id) ON DELETE NO ACTION
  )  ;


Проблема: в первом операторе ругается что таблицы BB не существует. Sqlite это нормально обрабатывал.

Вопрос 1: Поддерживает ли Firebird такие связи?

Вопрос 2: Можно ли как-то сделать это внутри оператора CREATE TABLE и не городить ALTER TABLE на добавление ограничения внешнего ключа?

Вопрос 3: Каким способом это принято делать в Firebird ?

Viewing all articles
Browse latest Browse all 1677

Trending Articles