Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание и заполнение базы данных . Вопрос от студента :) 
:(
    Опции темы
magikanin
Дата 27.4.2007, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 27.4.2007

Репутация: 1
Всего: 1



Здравствуйте ! 
Я студент и у меня курс "Оптимизация баз данных Оракл " . К сожалению самим базам данным Оракл нас не учили , поэтому приходиться разбираться самому с начала . 
Задание таково самому спроектировать базу данных и оптимизировать ее .

Но для начала ее нужно создать . 
Моя база данных   о режимном обьекте - например Атомная Электростаниция . и нужно замериать в какое время и в каком кабинете был работник . 
Создал базу так .
-----------------------------------------------------------------------------------------------
echo on;
drop table my_vremia;
drop table my_zal;
drop table my_rabotnik;


create table my_zal (
      Nr     int  not null   ,
      Nazvanije varchar2(32) not null ,
      constraint zal_pk primary key(Nr)
      ); 
create sequence my_seq minvalue 1 start with 1 increment by 1 cache 20;
     

create table my_rabotnik (
      Nr_rabotnik int not null ,
      Imia  varchar2(12) not null ,
      Familija varchar2(13) not null,
      constraint rabotnik_pk primary key(Nr_rabotnik)  
      );
create sequence rab_seq minvalue 1 start with 1 increment by 1 cache 20;      
      
 
create table my_vremia (
      Id int not null primary key,     
      Vremia_prihoda    timestamp (6) ,
      Vremia_uhoda  timestamp (6),
      rabotnik int not null,
      zal int not null,
      constraint vremia_fk_zal foreign key (zal) references my_zal(Nr)
      on delete cascade,
      constraint vremia_fk_rabotnik foreign key(rabotnik) 
      references my_rabotnik(Nr_rabotnik)
      on delete cascade
);

create sequence vremia_seq minvalue 1 start with 1 increment by 1 cache 20;
---------------------------------------------------------------------------------------

Но вставить таблицу тестовыми данными не получаеться .
----------------------------------------------------------------------------------------
declare 
x varchar2(32);

begin
for i in 1..100
loop 
x := dbms_random.string('A',32);
insert into my_zal(Nr,Nazvanije) values (my_seq.nextval,x);
end loop;
end;
/


declare 
var varchar2(12);
pav varchar2(13);

begin
for i in 1..1000
loop
var := dbms_random.string('A',12);
pav := dbms_random.string('A',13);
insert into my_rabotnik(Nr_rabotnik,Imia,Familija) values (darb_seq.nextval,var,pav);
end loop;
end;
/
--------------------------------------------------------------------------------------------

Эти две процедуры работают отлично . Но третья которая заполняет таблицу с внешними ключами не работает .  Приведу ее код . 

begin
for i in 1..1000
loop
 
insert into my_vremia(Id,Vremia_prihoda,Vremia_uhoda,rabotnik,zal) values (laikas_seq.nextval,systimestamp,systimestamp,1,1);

end loop;
end;
/

Я в тупике - не могу решить эти проблему таблица не заполняеться .  smile 

Для асов Оракла - наверное моя проблема смешна , но все когда то начиали учиться . Спасибо всем кто откликнеться и протянет руку помощи .

Добавлено @ 11:57
Ошибку такую викидывает 

begin
*
ERROR at line 1:
ORA-02291: integrity constraint (GALSER.LAIKAS_FK_DARBUOTOJAS) violated -
parent key not found
ORA-06512: at line 5


То есть с внешним ключом что то не то творю .

Добавлено через 11 минут и 4 секунды
То есть на русском языке ошибка так будет 

begin
*
ERROR at line 1:
ORA-02291: integrity constraint (vremia_fk_rabotnik) violated -
parent key not found
ORA-06512: at line 5]


Возможно кто то имеет примеры создания и заполнения простой базы данных , где таблица имеет внешние ключи ? И как по вашему заполнить эту базу данных данными около 10000 строк , ну чтобы можно было оптимизировать ?

Это сообщение отредактировал(а) magikanin - 27.4.2007, 11:59
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0377 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.