2015-07-13 134 views
-3

我使用MySQL 5.6命令行客戶端創建一個簡單的數據庫,我可以創建數據庫還沒有創建我的第一個表我有一個我無法識別的語法錯誤。感謝您的幫助,如果有英文錯誤,我不好意思,它不是我的第一語言。 請找到粘貼在SQL語法錯誤:創建表時SQL語法錯誤

mysql> USE SYLVAINTEST 
Database changed 
mysql> CREATE TABLE students 
    -> (
->  studentid INT NOT NULL, 
->  firstname VARCHAR, 
->  lastname VARCHAR, 
->  dob  VARCHAR, 
->  CONSTRAINT pk_students PRIMARY KEY (studentid) 
-> ); 

ERROR 1064 (42000): 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 ' lastname VARCHAR, dob VARCHAR, CONSTRAINT pk_students ' at line 4

mysql> CREATE TABLE students 
-> (
-> studentid INT NOT NULL, 
-> firstname VARCHAR , 
-> lastname VARCHAR , 
-> dob VARCHAR , 
-> CONSTRAINT pk_students PRIMARY KEY (studentid) 
-> ); 

ERROR 1064 (42000): 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 ' lastname VARCHAR , dob VARCHAR , CONSTRAINT pk_students PRIMARY KEY (' at line 4

+2

嘗試包括帶長'VARCHAR()'一兩件事。另外,如果'dob'用於「出生日期」,那應該是日期而不是字符串。 –

回答

1

你應該在下面的VARCHAR()指定長度:

CREATE TABLE students 
    (
    studentid INT NOT NULL, 
    firstname VARCHAR(40), 
    lastname VARCHAR(40), 
    dob  VARCHAR(20), 
    CONSTRAINT pk_students PRIMARY KEY (studentid) 
); 
0

你缺少長度爲VARCHAR數據類型

CREATE TABLE students 
     (
    studentid INT NOT NULL,  firstname VARCHAR(100),  
    lastname VARCHAR(100), 
    dob VARCHAR(20), 
    CONSTRAINT pk_students PRIMARY KEY (studentid) 
    ); 

還要確保使用正確的日期時間數據類型來存儲datatetime值

+0

感謝您的回答。這樣可行。 我不明白爲什麼對於最後和名字,我不能設置varchar(40)爲例,以節省空間。爲什麼 dob VARCHAR(20)有任何語法問題? 我很高興的作品,但我不明白爲什麼其實 謝謝 – Sylvain

+0

你應該使用datetime數據類型來存儲日期值。否則,您的數據是varchar,並且在轉換爲datetime之前不能進行計算 – Madhivanan