2012-03-31 41 views
1

这里是我的SQL:MySQL表不产生错误#1064

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

这里是我得到的错误:

#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 

不幸的是大多数的我在DB的编程经验是在PostgreSQL ,而外键看起来效果更好。

编辑:好吧所以第一个问题是,我的眼睛被关闭,{}应为(),但现在我得到一个新的错误

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

这里是全ddl.sql(.. 。在其他列,该表是打造精品虽然)

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

据曼努埃尔没有“{”写(http://dev.mysql.com/doc/refman/5.1/de/create-table.html) – 2012-03-31 05:32:56

回答

0

使用圆括号对()不是卷曲的{}

此外,请确保您已创建userid列与完全相同类型第一。

+0

以及你是对的,但现在我得到这个,#1005 - 无法创建表'ourhoursdb.companyprinciple'(错误:150) – Wryte 2012-03-31 05:35:54

+0

再次检查我的答案。你是否先创建用户表? – 2012-03-31 05:39:08

+0

好吧我知道了,我正在使用SERIAL和INT它不喜欢 – Wryte 2012-03-31 05:51:59

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

谢谢,请检查我的编辑虽然:( – Wryte 2012-03-31 05:37:12

+0

@CraigDykstra:你有没有id列的用户表。 – 2012-03-31 05:38:32

+0

虐待添加我的完整ddl.sql的问题 – Wryte 2012-03-31 05:43:22