简体   繁体   English

尝试创建表时出现MySQL错误,

[英]MySQL error while trying to create table,

I'm using PHPMyAdmin, hosted with hostgator, to add a table to a database, but I keep getting the following error: 我正在使用与hostgator一起托管的PHPMyAdmin来向数据库添加表,但是我一直收到以下错误:

1064 - You have an error in your SQL syntax; 1064 - 您的SQL语法出错; check the manual that corresponds to your MySQL server version for the right syntax to use near ') NOT NULL , note TEXT NOT NULL , cardNumber BIGINT(20) NOT NULL , `nameC' at line 1 查看与您的MySQL服务器版本对应的手册,以便在')NOT NULL附近使用正确的语法, note TEXT NOT NULL, cardNumber BIGINT(20)NOT NULL,`nameC'在第1行

Here's what I have: 这就是我所拥有的: 在此输入图像描述 and here's the preview of the SQL 这是SQL的预览

CREATE TABLE `nightwin_mark-inn`.`guests` (
    `id` INT(3) NOT NULL AUTO_INCREMENT , 
    `dateIn` DATE NOT NULL , 
    `dateOut` DATE NOT NULL , 
    `email` TEXT NOT NULL , 
    `phone` INT(10) NOT NULL , 
    `room` TINYINT(2) NOT NULL , 
    `price` DOUBLE(6) NOT NULL , 
    `note` TEXT NOT NULL , 
    `cardNumber` BIGINT(20) NOT NULL , 
    `nameCard` TEXT NOT NULL , 
    `expDate` TEXT NOT NULL , 
    `cvc` TINYINT(3) NOT NULL , 
    PRIMARY KEY (`id`)
)

What's causing this issue? 是什么导致了这个问题? Do I have the length of one of the fields wrong? 我有一个字段的长度错了吗?

Try to use this 试着用这个

price` DOUBLE(6,2) NOT NULL   //9999.99 max value stored

instead of 代替

price` DOUBLE(6) NOT NULL

Note: for price field use datatype DECIMAL more preferable. 注意:对于价格字段,使用数据类型DECIMAL更为可取。 In FLOAT or DOUBLE datatype you will get rounding number issue FLOATDOUBLE数据类型中,您将获得舍入数字问题

Reference 参考

You can try below - DOUBLE(6) should be only DOUBLE 您可以在下面尝试 - DOUBLE(6)应该只有DOUBLE

CREATE TABLE `nightwin_mark-inn`.`guests` ( `id` INT(3) NOT NULL AUTO_INCREMENT , 
`dateIn` DATE NOT NULL , `dateOut` DATE NOT NULL , `email` TEXT NOT NULL , 
`phone` INT(10) NOT NULL , `room` TINYINT(2) NOT NULL , `price` DOUBLE NOT NULL , 
`note` TEXT NOT NULL , `cardNumber` BIGINT(20) NOT NULL , `nameCard` TEXT NOT NULL , 
 `expDate` TEXT NOT NULL , `cvc` TINYINT(3) NOT NULL , PRIMARY KEY (`id`))
please try using this MySQL statement

CREATE TABLE `guests` ( `id` INT(3) NOT NULL AUTO_INCREMENT ,  `dateIn` DATE NOT NULL , `dateOut` DATE NOT NULL , `email` TEXT NOT NULL ,  `phone` INT(10) NOT NULL , `room` TINYINT(2) NOT NULL , `price` DOUBLE(6,2) NOT NULL ,  `note` TEXT NOT NULL , `cardNumber` BIGINT(20) NOT NULL , `nameCard` TEXT NOT NULL ,      `expDate` TEXT NOT NULL , `cvc` TINYINT(3) NOT NULL , PRIMARY KEY (`id`));

please try using this MySQL statement 请尝试使用此MySQL语句

CREATE TABLE guests ( id INT(3) NOT NULL AUTO_INCREMENT , dateIn DATE NOT NULL , dateOut DATE NOT NULL , email TEXT NOT NULL , phone INT(10) NOT NULL , room TINYINT(2) NOT NULL , price DOUBLE(6,2) NOT NULL , note TEXT NOT NULL , cardNumber BIGINT(20) NOT NULL , nameCard TEXT NOT NULL , expDate TEXT NOT NULL , cvc TINYINT(3) NOT NULL , PRIMARY KEY ( id )); CREATE TABLE guestsid INT(3)NOT NULL AUTO_INCREMENT, dateIn DATE NOT NULL, dateOut DATE NOT NULL, email TEXT NOT NULL, phone INT(10)NOT NULL, room TINYINT(2)NOT NULL, price DOUBLE(6,2) )NOT NULL, note TEXT NOT NULL, cardNumber BIGINT(20)NOT NULL, nameCard TEXT NOT NULL, expDate TEXT NOT NULL, cvc TINYINT(3)NOT NULL,PRIMARY KEY( id ));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM