Hjælp til opsætning af tabeller.

Tags:    databaser

<< < 12 > >>
En ven og jeg er gået i gang med et læringsopgave vi har stillet os
selv. Det går ud på at bygge en telefonbog applikation i java, med en oracle
database.

Vi har dog en masse fejl i databasen når vi prøver at oprette den.

Vi har prøvet at få den op på 3. normalform, hvor vi blev nød til at
bruge en attribut som hedder pno(personnr.), startede fra 1.

Jeg ved der er en auto-funktion i SQL hvor den selv giver det næste
nr, men har ikke kunnet finde den i vores lærebog.

---------------------------------------------------------------
-- Phonebook Database; Create Tables Script
-- by Ullah & Winther
---------------------------------------------------------------

drop table Persons cascade constraints;
create table Persons (
pnr number(4) not null primary key references phone,
fname varchar2(15) not null,
lname varchar2(15) not null,
adr varchar2(30) not null,
zip number(4) not null references zip;

drop table zip cascade constraints;
create table zip (
zip number(5) references zipcodes not null primary key,
city varchar(15) not null;

rop table phone cascade constraints;
create table phone (
pnr number(5) not null primary key,
htlf number(8),
mtlf number(8);

insert into city VALUES(3460, Birkerød);
insert into phone VALUES (1, 48181818, 24242424);
insert into person VALUES (1,Mark, Jensen, Pilevang 30, 3460);

Hvis nogen kunne hjælpe ville det være great!



Jeg ved der er en funktion i MySQL der hedder AUTO_INCREMENT (Kan måske være skrevet anderledes er lidt i tvivl) og den sørger for at forhøje f.eks id med en for hver ny række.



Tak skal du have Martin, når den kører så vil jeg prøve det.



Du nævner ikke hvilke fejl i får smidt i hovedet? Jeg kan se at når du "drops" tabellen phone så har du glemt d'et :)



Jamen jeg syntes jeg får så mange fejl så det ville være ligemeget at skrive dem, desuden så der sikkert mange herinde der hurtigt kan finde de fejl der er.

Jeg regner også med at skrive not null i næsten dem alle måske er en fejl, men vi regner med alle har en adresse og osv..



Jeg kigger lige på det og smider en query der burde virke.



Jeg er ikke sikker på om den virker, men du kan forsøge.

Fold kodeboks ind/udSQL kode 




pnr er egentlig vores ID, så hvilken skal jeg tage ud?



Så skal du bare fjerne den der hedder Id og sætte Primary key på Pnr.




Error starting at line 1 in command:
DROP TABLE Persons CASCADE CONSTRAINT
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:

Error starting at line 2 in command:
CREATE TABLE Persons
(
Pnr int NOT NULL PRIMARY KEY,
Fname varchar(15) NOT NULL,
Lname varchar(15) NOT NULL,
Adr varchar(30) NOT NULL,
Zip int NOT NULL,
FOREIGN KEY (Zip) REFERENCES Zip(Zip),
FOREIGN KEY (Pnr) REFERENCES Phone(Pnr)
)
Error at Command Line:9 Column:29
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:

Error starting at line 13 in command:
DROP TABLE Zip CASCADE CONSTRAINT
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
CREATE TABLE succeeded.

Error starting at line 20 in command:
DROP TABLE Phone CASCADE CONSTRAINT
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
CREATE TABLE succeeded.



Så nu virker det,

FOREIGN KEY (Zip) REFERENCES Zip(Zip),
FOREIGN KEY (Pnr) REFERENCES Phone(Pnr)

til:

FOREIGN KEY (Zip) REFERENCES Zip,
FOREIGN KEY (Pnr) REFERENCES Phone

Tak for det Martin :)

Nu vil jeg prøve den auto



<< < 12 > >>
t