Avatar billede eksperten1 Nybegynder
01. september 2005 - 14:17 Der er 7 kommentarer

Error 1064, når jeg vil oprette database

Jeg forsøger at oprette en ny database i MySQL direkte med et SQL query, jeg har nu klippet en kode direkte herinde fra, fordi jeg troede at det var min egen der var helt f*cked up, men jeg får stadig samme fejl :

Her er SQL, som jeg submitter direkte fra Query Analyzer :
#
# Opretter databasen: webshop
#
CREATE DATABASE webshop;
use webshop;


#
#Tabel struktur for: shop_dealer
#
CREATE TABLE shop_dealer (
    dealer_id INT NOT NULL auto_increment,
    company_name VARCHAR (30) NOT NULL,
    contact_person VARCHAR (128) NOT NULL,
    address1 VARCHAR (128) NOT NULL,
    address2 VARCHAR (128) NOT NULL,
    zipcide INT (4) NOT NULL,
    town VARCHAR (128) NOT NULL,
    phone INT (11) NOT NULL,
    cellphone INT (11) NOT NULL,
        PRIMARY KEY (dealer_id)
) TYPE=INNODB;

#
#Tabel struktur for: shop_products
#
CREATE TABLE shop_products (
    product_id INT NOT NULL auto_increment,
    name VARCHAR (15) NOT NULL ,
    descript TEXT NOT NULL ,
    in_price MEDIUMINT (16) NOT NULL ,
    out_price MEDIUMINT (16) NOT NULL ,
    cat VARCHAR (10) NOT NULL ,
    photo BLOB NOT NULL ,
    sale ENUM ('Y','N') NOT NULL  default 'N',
    store MEDIUMINT (16) NOT NULL ,
    ordermore MEDIUMINT (16) NOT NULL ,
    primary_dealer INT NOT NULL,
        PRIMARY KEY (product_id) ,
        INDEX dealer_id_idx (primary_dealer),
        FOREIGN KEY (primary_dealer) REFERENCES shop_dealer(dealer_id)
) TYPE=INNODB;
#
#Tabel struktur for: shop_customer
#
CREATE TABLE shop_customer (
    customer_id  INT NOT NULL auto_increment,
    f_name VARCHAR (128) NOT NULL,
    l_name VARCHAR (128) NOT NULL,
    address1 VARCHAR (128) NOT NULL,
    address2 VARCHAR (128) NOT NULL,
    zipcide INT (4) NOT NULL,
    town VARCHAR (128) NOT NULL,
    phone INT (11) NOT NULL,
    cellphone INT (11) NOT NULL,
        PRIMARY KEY (customer_id)
) TYPE=INNODB;


#
#Tabel struktur for: shop_basket
#
CREATE TABLE shop_basket(
    basket_id INT NOT NULL auto_increment ,
    session_id VARCHAR (32) NOT NULL ,
    product_id INT NOT NULL ,
        PRIMARY KEY (basket_id) ,
        INDEX product_id_idx(product_id),
        FOREIGN KEY (product_id) REFERENCES shop_products(product_id)
) TYPE=INNODB;


#
#Tabel struktur for: shop_orders
#
CREATE TABLE shop_orders (
    order_id INT (12) NOT NULL auto_increment ,
    product_id INT NOT NULL ,
    customer_id INT NOT NULL ,
    date INT (12) NOT NULL,
        PRIMARY KEY (order_id) ,
        INDEX product_id_idx(product_id),
        FOREIGN KEY (product_id) REFERENCES shop_products(product_id) ,
        INDEX customer_id_idx(customer_id),
        FOREIGN KEY (customer_id) REFERENCES shop_customer(customer_id)
) TYPE=INNODB;

Og her er fejlen som jeg modtager:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
use webshop;


#
#Tabel struktur for: shop_dealer
#
CREATE TABLE shop_d' at line 4

Det er en MySQl 4.12 på en Windows 2000 server, jeg er logget ind som root, remote, men med alle rettigheder på alle tabeller *.*.

Hvis jeg skriver CREATE DATABASE webshop, så bliver den oprettet, men ikke når det er en del af et større script.

Please anyone ??
Avatar billede beef12 Nybegynder
01. september 2005 - 15:35 #1
Har haft nogenlunde samme problem. Jeg løste det ved at skrive f.eks CREATE TABLE webshop.shop_products osv

Så kan du fjerne use webshop - som tilsyneladende er synderen...

Du skriver forøvrigt "Query Analyzer" - hvad er det for et program du bruger?
Avatar billede eksperten1 Nybegynder
01. september 2005 - 15:41 #2
Tak for indlægget!

Det er det værktøj som MySQl tilbyder til Win, Mac og Linux, det er en suite af programmer, (ok der er 2) med Administrator og Query Analyzer. Super lækre!!

http://www.mysql.com/products/tools/

Jeg prøver det som du har haft success med!
Avatar billede eksperten1 Nybegynder
01. september 2005 - 15:42 #3
Men umiddelbart læser jeg mysql fejlen som om at der i nærheden af USE... ??
Avatar billede eksperten1 Nybegynder
01. september 2005 - 21:03 #4
Hmm, jeg har forsøgt at gøre som foreslået, men stadig ingen ændring ?!?!?!?!

Det er vildt underligt, alt den sql jeg vil importere kommer direkte fra MySQL Administrator's backup funktion !?

Anyone ?
Avatar billede beef12 Nybegynder
02. september 2005 - 08:43 #5
Hmmm - det er lidt underligt.
Fjernede du "use webshop"?
Avatar billede eksperten1 Nybegynder
02. september 2005 - 08:47 #6
Yep, fjernede den og skrev istedet webshop.products etc....

Det er super underligt, det er jo også det at den samme sql kommer direkte ind med MySQl Administrator.

Jeg kommer nok til at oprette databaserne ad flere omgange :(, med ASP mener jeg, først køre en "CREATE DATABASE namehere;", derefter en
Avatar billede eksperten1 Nybegynder
02. september 2005 - 08:48 #7
ups...
CREATE TABLE for hver tabel, men det irriterer mig, det er nok ikke synderligt langsommere, og så ofte skal jeg ikke lave databaser, men det SKULLE kunne lade sig gøre.!
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