Avatar billede chakawoo.dk Nybegynder
21. januar 2005 - 09:39 Der er 9 kommentarer og
1 løsning

Syntax check i MySQL (Newbie)

Er der nogen der kan hjælpe mig med et syntax check.
Jeg er 100% newbie mht. MySQL.

100% newbie = 100 point for en hjælpende hånd :-)

CREATE TABLE BT_User{
        User_ID int PRIMARY KEY AUTO_INCREMENT,
        Email varchar(50) NOT NULL,
        Pass varchar(50),
        Account_Name varchar(50),
        ForName varchar(50),
        LastName varchar(50),
        Country varchar(50),
        Last_Login datetime,
        HandSet_ID int,
        CONSTRAINT FK_BetaUser_HandSet
            FOREIGN KEY(HandSet_ID) REFERENCES HandSet(HandSet_ID)
        };
   
    CREATE TABLE BT_HandSet{
        HandSet_ID int PRIMARY KEY,
        HandSet_Name varchar(30),
        };
   
    CREATE TABLE BT_BugType{
        BugType_ID int PRIMARY KEY,
        Model varchar(30)
        };
       
    CREATE TABLE BT_BugReport{
        BugReport_ID int PRIMARY KEY AUTO_INCREMENT,
        SubmitBy_User
        BugType_ID int,
        HandSet_ID int,
        Hero_Name varchar(20),
        Hero_Name2 varchar(20)
        Short_Desc varchar(100),
        Description varchar(1500),
        Recreate_Desc varchar(1500),
        SubmitDate datetime CONSTRAINT DF_SubmitDate
            DEFAULT(GETDATE()),
        CONSTRAINT FK_BugReport_HandSet
            FOREIGN KEY(HandSet_ID) REFERENCES HandSet(HandSet_ID),
        CONSTRAINT FK_BugReport_BugType
            FOREIGN KEY(BugType_ID) REFERENCES BugType(BugType_ID)        
        };
Avatar billede arne_v Ekspert
21. januar 2005 - 09:42 #1
Hvorfor lader du ikke MySQL syntax checke ?

Det er den ret god til !

:-)
Avatar billede arne_v Ekspert
21. januar 2005 - 09:44 #2
Nogle ting falder i øjnene:

* du mangler TYPE=INNODB på tabellerne

* du mangler BT_ prefix i foreign key
Avatar billede chakawoo.dk Nybegynder
21. januar 2005 - 09:57 #3
øhh som sagt er jeg en rigtig newbie..... kan du ikke vise hvor TYPE=INNODB skal indsættes
Avatar billede arne_v Ekspert
21. januar 2005 - 10:07 #4
CREATE TABLE BT_HandSet{
        HandSet_ID int PRIMARY KEY,
        HandSet_Name varchar(30),
        } TYPE=INNODB;
Avatar billede arne_v Ekspert
21. januar 2005 - 10:07 #5
Husk iøvrigt at opret tabellerne så  de tabeller du refererer til er oprettet først.
Avatar billede chakawoo.dk Nybegynder
21. januar 2005 - 10:12 #6
ok... så jeg CREATE'r først og ALTER bagefter med f.eks
CONSTRAINT  FK_BugReport_HandSet
            FOREIGN KEY(HandSet_ID) REFERENCES HandSet(HandSet_ID),

Jeg tester det lige i løbet af dagen ... og giver dig point efterfølgende ...
1000 tak
Avatar billede arne_v Ekspert
21. januar 2005 - 10:18 #7
Foreign keys plejer godt at kunen drille folk lidt.

Læs http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html grundigt.
Avatar billede arne_v Ekspert
21. januar 2005 - 10:19 #8
og et svar såfremt du får det til at virke
Avatar billede martor Nybegynder
22. januar 2005 - 23:44 #9
Du bør lige læse lidt om at bruge InnoDB, inden du bare vælger den. Der er nogle ting du skal være opmærksom på.
1) Skal du bruge transaktioner? (vælg InnoDB)
2) Skal du bruge fremmednøgler (referentiel integritet)? (vælg InnoDB)
3) Skal du bruge fuld-tekst søgning? (vælg MyIsam)
4) Skal du ikke bruge 1 eller 2 ( vælg MyIsam :) )

Du skal i hvert fald være opmærksom på at InnoDB kører med et vist overhead, grundet den ekstra sikkerhed den stiller til rådighed og derfor ikke er lige så hurtig som MyIsam.

Vælger du MyIsam (som er standard), kan du ikke have dine Foreign key constraints.

En anden ting der kan gøre din base hurtigere, er at indføre NOT NULL på alle felter der alligevel ikke må være null, typisk navn, password etc.

Og det kan også være en god ide at oprette index's, da det gør f.eks. en søgning hurtigere.

Og en mindre ting: du mangler vist at angive en type med SubmitBy_user i BugReport tabellen.

Just FYI :)
Avatar billede chakawoo.dk Nybegynder
23. januar 2005 - 21:09 #10
Så kom skidtet til at køre.. Tak for hjælpen
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