2012-03-31 1 views
1

hier nicht zu schaffen ist mein sql:MySQL Tabellenfehler # 1064

CREATE TABLE companyprinciple { 
userid INT, 
FOREIGN KEY (userid) REFERENCES user(id) ON DELETE CASCADE 
}ENGINE=INNODB; 

und hier ist der Fehler, ich erhalte:

#1064 - 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 '{ 
userid INT, 
FOREIGN KEY (userid) REFERENCES user(id) ON DELETE CASCADE 
}ENG' at line 1 

leider die meisten meiner Erfahrung in der db-Programmierung ist in postgreSQL und die Fremdschlüssel funktionieren dort viel besser.

EDIT: in Ordnung so das erste Problem war, dass meine Augen geschlossen waren und die {} sollte(), aber jetzt bin ich einen neuen Fehler bekommen ist

#1005 - Can't create table 'ourhoursdb.companyprinciple' (errno: 150) 

hier die volle ddl.sql (.. . andere Spalten ist, wird diese Tabelle

CREATE SCHEMA OurHoursDB; 
USE OurHoursDB; 

CREATE TABLE User (
id SERIAL NOT NULL PRIMARY KEY, 
... 

) ENGINE=INNODB; 

CREATE TABLE companyprinciple (
userid INT, 
FOREIGN KEY (userid) REFERENCES user(id) ON DELETE CASCADE 
)ENGINE=INNODB; 
+0

Nach dem manuel gibt es keine „{“ schreiben (http://dev.mysql.com/doc/refman/5.1/de/create-table.html) –

Antwort

0

Verwenden runde Klammer Paar () jedoch in Ordnung) erzeugt wird. NICHT die geschweiften {}.

Auch stellen Sie sicher, user Tabelle mit einer id Spalte mit exakt gleichen Typ zuerst erstellt haben.

+0

gut Sie richtig waren, aber jetzt Ich bekomme das, # 1005 - Kann Tabelle 'ourhoursdb.companyprinciple' nicht erstellen (errno: 150) – Wryte

+0

Überprüfen Sie meine Antwort noch einmal. Haben Sie zuerst die Benutzertabelle erstellt? –

+0

in Ordnung, ich habe es, ich war mit SERIAL und INT, die es nicht mochte – Wryte

0
CREATE TABLE companyprinciple (
    userid INT, 
    FOREIGN KEY (userid) REFERENCES user(id) ON DELETE CASCADE 
) ENGINE=INNODB; 
+0

danke, überprüfen Sie meine Bearbeitung obwohl :( – Wryte

+0

@CraigDykstra: Sie haben keine Benutzer-Tabelle mit ID Spalte. –

+0

krank hinzufügen meine volle ddl.sql zu der Frage – Wryte