2014-02-06 185 views
0

蔭收到錯誤1064 SQL錯誤CREATE TABLE語句中

#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 ''ID' int, 'MGR_ID' int, 'DEPT_ID' int, 'NAME' VARCHAR2(30), 'SAL' int, ' at line 3 while creating a table. I have already a table department with PK as 'dept_id'. Help lease 

CREATE TABLE emp 
(
'ID' int, 
'MGR_ID' int, 
'DEPT_ID' int, 
'NAME' VARCHAR2(30), 
'SAL' int, 
'DOJ' DATE, 
PRIMARY KEY ('ID') , 
FOREIGN KEY ('MGR_ID') REFERENCES emp('ID') , 
FOREIGN KEY ('DEPT_ID') REFERENCES department('dept_id') 
) 

回答

1

使用反引號(')來定義對象名稱,但不是單引號(')。

你的表的定義應是:

CREATE TABLE emp 
(
    `ID` int, 
    `MGR_ID` int, 
    `DEPT_ID` int, 
    `NAME` VARCHAR2(30), 
    `SAL` int, 
    `DOJ` DATE, 
    PRIMARY KEY (`ID`) , 
    FOREIGN KEY (`MGR_ID`) REFERENCES emp(`ID`) , 
    FOREIGN KEY (`DEPT_ID`) REFERENCES department(`dept_id`) 
) 
+0

我用這一個,但不工作 – justjiten

+0

'Varchar2'不會在MySQL中工作。將其更改爲「Varchar」。 –

+0

耶謝謝,工作正常。 – justjiten

0

不要'引用您的字段名稱。這將他們變成了字符串,而不是字段名稱。

CREATE TABLE emp (
    id int, 
    mgr_id int, 
    etc... 
); 

如果DO需要引用一個字段名稱,因爲它是一個保留字,你使用反引號:

CREATE TABLE emp (
    `desc` int <---"desc" is a reserved word 
    etc... 
); 
0

試試這個

CREATE TABLE emp 
(
    `ID` int (20), 
    `MGR_ID` int (20), 
    `DEPT_ID` int (20), 
    `NAME` VARCHAR (30), 
    `SAL` int (20), 
    `DOJ` DATE, 
    PRIMARY KEY (ID) , 
    FOREIGN KEY (MGR_ID) REFERENCES emp(ID) , 
    FOREIGN KEY (DEPT_ID) REFERENCES department(dept_id) 
    ) 
+0

試過但沒有成功,同樣的錯誤。 – justjiten

+0

請發佈此錯誤。它不是一樣的 –

+0

你可以給你整數的長度,現在看看我更新的答案。 –