Avatar billede kristianv Nybegynder
03. juni 2003 - 09:39 Der er 4 kommentarer og
1 løsning

Insert into

Jeg skal ha indsat nogle informationer i mine tabeller, fra nogle variabler i php. Har indtil videre bare brugt MysqlCC for at finde de rigtige statements.

Der skal indsættes noget data i tabellen "brugernavn", og de skal sammenkædes med data i "system". Samtidig skal det også sammenkædes med data i "ansvarlig" via "ejerskab".

Jeg kan ikke helt gennemskue hvordan de/den statement skal se ud, når man både indsætter fra variabler og fra en anden tabel, samt når det skal kædes sammen med de andre tabeller.

Håber i kan hjælpe

Create table system(
system_id int not null primary key auto_increment,
systemnavn varchar(30) not null,
beskrivelse varchar(50) not null,
oprettet timestamp
) TYPE = innodb;

Create table brugernavn(
brugernavn_id int not null primary key auto_increment,
bruger varchar(30) not null,
password varchar(30) not null,
beskrivelse varchar(50) not null,
system_id int not null,
url varchar(40),
oprettet timestamp,
index (system_id),
foreign key(system_id)
references system(system_id)
) TYPE = innodb;

Create table ansvarlig(
ansvarlig_id int not null primary key auto_increment,
fornavn varchar(30) not null,
efternavn varchar(30) not null,
mail varchar(30) not null,
initialer varchar(10) not null,
password varchar(30) not null,
admin bool not null,
superbruger bool not null,
bruger bool not null,
oprettet timestamp
)TYPE = innodb;

Create table ejerskab(
brugernavn_id int not null,
ansvarlig_id int not null,
primary key(brugernavn_id, ansvarlig_id),
index (brugernavn_id),
foreign key(brugernavn_id)
references brugernavn(brugernavn_id),
index (ansvarlig_id),
foreign key(ansvarlig_id)
references ansvarlig(ansvarlig_id)
) TYPE = innodb;
Avatar billede zapzap Nybegynder
03. juni 2003 - 10:20 #1
Det ser ud til at du vil indsætte i brugernavn. Du kan ikke indsætte i flere tabeller samtidigt (undtaget via et opdaterbart view, ved ikke om MySQL har det). Så du skal starte fra bunden - f.eks. skal system_id i bruger jo pege på et system_id i system, så det påg. system skal eksistere før du kan indsætte i brugernavn. På samme måde skal ansvarlig fyldes før ejerskab, da ejerskab ref'er ansvarlig. Så det ser ud til at blive:
1. insert på system
2. insert på ansvarlig
3. insert på brugernavn
4. insert på ejerskab.
Avatar billede kristianv Nybegynder
03. juni 2003 - 10:26 #2
Jeg har indsat info i system og ansvarlig. Det var mere om man kunne lave en insert into statemant hvor man både har data fra variabler og data fra en anden tabel.
Avatar billede zapzap Nybegynder
03. juni 2003 - 11:14 #3
Det kan du godt. Hvor godt det kan blive afhænger lidt af hvad du skal.
INSERT har normalt en 'table-source' der også kan være en select, feks insert into bruger select * from bruger_backup
Avatar billede kristianv Nybegynder
03. juni 2003 - 12:36 #4
Insert into brugernavn(bruger, password, beskrivelse, system_id, url) values ('krv', '1234', 'test', ????, 'www');

Spørgsmålet er så bare hvordan jeg får værdien for system_id med fra den anden tabel(der hvor jeg har sat spørgsmålstegn)
Avatar billede zapzap Nybegynder
06. juni 2003 - 14:53 #5
F.eks.
Insert into brugernavn(bruger, password, beskrivelse, system_id, url)
select 'krv', '1234', 'test', system_id, 'www')
from system
where system_navn = 'AMANDA'
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester