Как я могу добавить ноль по умолчанию в Oracle Database - PullRequest
0 голосов
/ 24 апреля 2018

Привет всем, я новичок в базах данных, и я пытаюсь добавить внешний ключ в первый раз, когда я пытался, у меня была следующая ошибка ORA-01735: invalid ALTER TABLE option, когда я погуглил его, он нашел что-то вроде DEFAULT NULL: Но когда я его использую, яполучить следующий код ошибки RA-00904: : invalid identifier

Моя измененная таблица выглядит следующим образом

alter table car
add constraint priceCar DEFAULT NULL foreign key (note) references priceCode(note) DEFAULT NULL;

Я не знаю, что я делаю неправильно, я впервые использую базы данных Oracle

1 Ответ

0 голосов
/ 24 апреля 2018

Добавление ограничения будет просто:

alter table car
add constraint priceCar foreign key (note) references priceCode(note);

при условии, что соответствующий столбец уже существует в обеих таблицах и имеет одинаковый тип данных и является первичным или уникальным ключом в priceCode.

Значение по умолчанию для столбца является совершенно не связанной проблемой, и, поскольку это предположительно числовой столбец, оно все равно будет по умолчанию равно нулю.Вы можете явно добавить нулевое предложение по умолчанию в определение столбца (не ограничение), но вам не нужно.

Быстрое демо с готовыми таблицами:

create table pricecode(note number primary key);

Table PRICECODE created.

create table car (id number, note number);

Table CAR created.

alter table car
add constraint priceCar foreign key (note) references priceCode(note);

Table CAR altered.

insert into car (id) values (1);

1 row inserted.

Тогда:

select * from car;

        ID       NOTE
---------- ----------
         1           

показывает, что note по умолчанию имеет значение null без необходимости явной настройки этого (а также того, что он не жаловался на то, что он не соответствует значению первичного ключа).

...