2017-02-25 87 views
1

我正在尝试在我的数据库上创建一个表。这是错误创建表时在sql中出错

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') NOT NULL , `ctc` DOUBLE(5) NOT NULL , `ref` VARCHAR(50) NOT NULL , `date` D' at line 1 

我的查询:

CREATE TABLE `job`.`form_details` ( 
    `email_id` VARCHAR(50) NOT NULL , 
    `name` VARCHAR(50) NOT NULL , 
    `number` VARCHAR(14) NOT NULL , 
    `city` VARCHAR(50) NOT NULL , 
    `skill` VARCHAR(50) NOT NULL , 
    `qualification` VARCHAR(50) NOT NULL , 
    `position` VARCHAR(50) NOT NULL , 
    `exp` DOUBLE(5) NOT NULL , 
    `ctc` DOUBLE(5) NOT NULL , 
    `ref` VARCHAR(50) NOT NULL , 
    `date` DATE NOT NULL , 
    `time stamp` TIMESTAMP(30) NOT NULL) ENGINE = InnoDB; 
+1

花费一些精力来格式化您的查询。 –

回答

4

一个double的精度由两个参数指定 - (M, D) - M位整数总数和d小数点后。 A timestamp的精确度必须不大于6.所以:

CREATE TABLE `job`.`form_details` (
`email_id` VARCHAR(50) NOT NULL , 
`name` VARCHAR(50) NOT NULL , 
`number` VARCHAR(14) NOT NULL , 
`city` VARCHAR(50) NOT NULL , 
`skill` VARCHAR(50) NOT NULL , 
`qualification` VARCHAR(50) NOT NULL , 
`position` VARCHAR(50) NOT NULL , 
`exp` DOUBLE(5, 2) NOT NULL , -- Two arguments for the double's precision 
`ctc` DOUBLE(5, 2) NOT NULL , -- Here too 
`ref` VARCHAR(50) NOT NULL , 
`date` DATE NOT NULL , 
`time stamp` TIMESTAMP(6) NOT NULL -- Timestamp precision capped at 6 
) ENGINE = InnoDB 
+1

'时间戳'个人确定我会避免字段名称中的空格。 –

+0

@P.Salmon我使用了OP的列名,只是修复了阻止语句执行的错误。但我同意列名中的空格可能是一个不好的习惯。 – Mureinik