Vinnaren i pepparkakshustävlingen!
2020-04-26, 11:54
  #1
Medlem
Hur gör jag pk i en tabell till fk i en annan med hjälp av sequence i Oracle?

Exempel:

create squence sekvens
start with 1
increment by 1;

create table student (
id number (100),
name varchar2(20)
);

alter table student
add constraint student_id_pk PRIMARY KEY (id);

create table betyg (
id number (100),
betyg varchar (4)
);

alter table betyg
add constraint betyg_id_fk FOREIGN KEY (id) REFERENCE student (id);

-- ADDERA VÄRDEN --

insert into student (id, name)
values (sekvens, 'sven');

insert into betyg (id, betyg)
values (?, G);


Jag vill länka ihop betyg med studenttabellen med hjälp av en foreign key.
Vad ska stå i frågetecknet?
Citera
2020-04-26, 12:04
  #2
Medlem
Blir väl sekvens?

Om du vill att studenten med id "sekvens" (alltså "sven") ska få betyget G


Dock så har du problemet att varje student endast kan få ett betyg
__________________
Senast redigerad av .-fuckYUO-. 2020-04-26 kl. 12:07.
Citera
2020-04-26, 13:10
  #3
Medlem
kan man spara värdet från sekvens.nextval till en annan variabel.
Exempelvis:

select sekvens
from student AS student_id

insert into betyg (id, betyg)
values (student_id, G);


Hur får man ovanstående förslag att fungera?
Citera
2020-04-26, 13:21
  #4
Medlem
Kod:
create sequens myseq 
start with 1
increment by 1


create table student (
id number (100), 
name varchar2 (20)
); 

create table betyg (
id number (100),
betyget varchar2 (3
); 

insert into student (idname
values (myseq.nextval'abc');

select id
from student
AS student_id

insert into betyg (idbetyget)
values (student_id'G'); 

select from student;

select from betyg

Skulle detta kunna funka?
Citera
2020-05-25, 15:52
  #5
Medlem
undrar också om ett sql objekt kan innehålla flera främmande nycklar?

exempelvis:

Kod:
create table konto (
fnamn varchar2(20),
enamn varchar2(20),
passwd varchar2(8)
); 

alter table konto
add constraint enamn_fk foreign key(fnamn) reference påhittatObjekt(fnamn); 
add constraint fnamn_fk foreign key(enamn) reference påhittatObjekt2(enamn); 

försöker att addera 3 fk till ett objekt men får 'invalid statement' på samtliga?

...
Alla mina foreign key deklarationer får felmeddelande?
Jag gör såhär:
Kod:
add constraint min_kolumn_fk foreign key (kolumn) reference påhittatObjekt(kolumn);
'påhittatObjekt kolumn' är primärnyckel.
__________________
Senast redigerad av bosscs2 2020-05-25 kl. 16:13.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback