Хорошо, так что я сейчас работаю над Oracle 11G Express Edition для колледжа. Я столкнулся с проблемой автоматического увеличения и обновления в следующей родительской таблице. Так что у меня есть таблица адресов, а затем таблица города, например. Вот адрес кода SQL
create table address(
addressid int primary key,
cityid int,
countyid int,
streetnameid int,
postcodeid int,
doornumid int,
natid int,
foreign key (doornumid) references doornum,
foreign key (postcodeid) references postcode,
foreign key (streetnameid) references streetname,
foreign key (countyid) references county,
foreign key (cityid) references city,
foreign key (natid) references nat);
Итак, как вы можете видеть, я ссылаюсь на таблицу городов как на внешний ключ, и это код таблицы SQL города ниже:
create table city(
cityid int primary key,
city varchar(45));
Код города использует последовательность для автоматического увеличения при вставке материала:
create SEQUENCE seq_cityID
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 11;
Так что я просто автоматически увеличиваю все входные данные на cityid, как это:
INSERT INTO city (cityid, city)
values(seq_cityID.nextval, Oxford);
INSERT INTO city (cityid, city)
values(seq_cityID.nextval, Oxford);
Но моя проблема в том, что когда я ссылаюсь на это в родительской таблице, например Таблица адресов Как мне ссылаться на идентификатор для этой строки данных и убедиться, что правильный идентификатор извлекается без необходимости вводить его вручную?
INSERT INTO address (addressid, cityid, countyid, streetnameid, postcodeid, doornumid, natid)
values(seq_addressID.nextval, seq_cityID.nextval, seq_countyID.nextval, seq_streetnameID.nextval, seq_postcodeID.nextval, seq_doornumID.nextval, seq_natID.nextval);
INSERT INTO address (addressid, cityid, countyid, streetnameid, postcodeid, doornumid, natid)
values(seq_addressID.nextval, seq_cityID.nextval, seq_countyID.nextval, seq_streetnameID.nextval, seq_postcodeID.nextval, seq_doornumID.nextval, seq_natID.nextval);
Это простая вставка в адрес, который в данный момент ссылается только на nextval, но я не верю, что он извлечет эту строку данных из этого идентификатора. Как эффективно вытащить этот идентификатор из дочерней таблицы и автоматически добавить его в родительский?