SQL错误创建表。语法错误?

时间:2016-03-28 11:00:54

标签: mysql sql

CREATE TABLE my_table (
    Nr INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Datum TIMESTAMP,
    Name VARCHAR(20), 
    Mymoney DOUBLE(20,10),
    mypercentage DOUBLE(25,20),
    Modifikation INT(10) UNSIGNED,
)

我收到错误:创建表时出错:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在附近使用')'在第8行?>

另一个' SQL语句检查'网站给了我这个错误: 错误1:无法准备语句(1接近" UNSIGNED":语法错误)

请帮助!!!

4 个答案:

答案 0 :(得分:1)

首先,删除最后一列定义末尾的逗号。然后,如果要指定比例和精度,请使用DECIMAL

CREATE TABLE my_table (
    Nr INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Datum TIMESTAMP,
    Name VARCHAR(20), 
    Mymoney DECIMAL(20,10),
    mypercentage DECIMAL(25,20),
    Modifikation INT(10) UNSIGNED
)

您可以使用DOUBLE PRECISION的比例和精度,但对于货币值,您应该使用固定点表示。对于“百分比”,这不是那么重要:

CREATE TABLE my_table (
    Nr INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Datum TIMESTAMP,
    Name VARCHAR(20), 
    Mymoney DECIMAL(20,10),
    mypercentage DOUBLE PRECISION,
    Modifikation INT(10) UNSIGNED
)

答案 1 :(得分:0)

从上一栏中删除,以修复查询错误。

这是查询的正确语法

CREATE TABLE my_table (
    Nr INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Datum TIMESTAMP,
    Name VARCHAR(20), 
    Mymoney DOUBLE(20,10),
    mypercentage DOUBLE(25,20),
    Modifikation INT(10) UNSIGNED
)

答案 2 :(得分:0)

这完全是因为')'

之前的逗号

答案 3 :(得分:0)

这里试试这个:

    CREATE TABLE my_table (
    Nr INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Datum TIMESTAMP,
    Name VARCHAR(20), 
    Mymoney DOUBLE(20,10),
    mypercentage DOUBLE(25,20),
    Modifikation INT(10) UNSIGNED
    );