MySQL语法错误Java表创建

我有一个 java 文件,如果它确实存在,它会尝试创建一个表,每当我尝试运行该程序时,我总是会收到语法错误。


CREATE TABLE IF NOT EXISTS `shirts` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR NOT NULL , `iid` INT NOT NULL , `desc` VARCHAR NOT NULL , `shelf` VARCHAR NOT NULL , `gender` VARCHAR NOT NULL , `chestsize` FLOAT(4,2) NOT NULL , `waistsize` FLOAT(4,2) NOT NULL , `seatsize` FLOAT(4,2) NOT NULL , `bicepsize` FLOAT(4,2) NOT NULL , `shirtlength` FLOAT(4,2) NOT NULL , `shirtwidth` FLOAT(4,2) NOT NULL , `sleevelength` FLOAT(4,2) NOT NULL , `collarsize` FLOAT(4,2) NOT NULL , `picture` LONGBLOB NOT NULL , `rented` BOOLEAN NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

它是直接从 phpMyAdmin 复制的,但一直抛出错误说明:


您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'NOT NULL 、`iid` INT NOT NULL 、`desc` VARCHAR NOT NULL 、`shelf` VARCHAR NOT NU' 附近使用正确的语法


对于我的生活,我不知道为什么。


我的语法错误在哪里?


完整的Java代码:


public void createShirtsTable() {

    String sql = "CREATE TABLE IF NOT EXISTS `shirts` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR NOT NULL , `iid` INT NOT NULL , `desc` VARCHAR NOT NULL , `shelf` VARCHAR NOT NULL , `gender` VARCHAR NOT NULL , `chestsize` FLOAT(4,2) NOT NULL , `waistsize` FLOAT(4,2) NOT NULL , `seatsize` FLOAT(4,2) NOT NULL , `bicepsize` FLOAT(4,2) NOT NULL , `shirtlength` FLOAT(4,2) NOT NULL , `shirtwidth` FLOAT(4,2) NOT NULL , `sleevelength` FLOAT(4,2) NOT NULL , `collarsize` FLOAT(4,2) NOT NULL , `picture` LONGBLOB NOT NULL , `rented` BOOLEAN NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;";

    try (Connection conn = this.connect();

            Statement stmt = conn.createStatement()) {

        stmt.execute(sql);

        //System.out.println("Created Shirts Table"); --DEBUG

    } catch (SQLException e) {

        System.out.println(e.getMessage());

    }

}


眼眸繁星
浏览 154回答 1
1回答

侃侃尔雅

要在 MySQL 中声明 varchar 字段,必须将最大长度作为参数传递CREATE TABLE IF NOT EXISTS `shirts` (      `id` INT NOT NULL AUTO_INCREMENT ,     `name` VARCHAR(10) NOT NULL ,           --updated     `iid` INT NOT NULL ,     `desc` VARCHAR(10) NOT NULL ,           --updated     `shelf` VARCHAR(10) NOT NULL ,          --updated     `gender` VARCHAR(10) NOT NULL ,         --updated     `chestsize` FLOAT(4,2) NOT NULL ,     `waistsize` FLOAT(4,2) NOT NULL ,     `seatsize` FLOAT(4,2) NOT NULL ,     `bicepsize` FLOAT(4,2) NOT NULL ,     `shirtlength` FLOAT(4,2) NOT NULL ,     `shirtwidth` FLOAT(4,2) NOT NULL ,     `sleevelength` FLOAT(4,2) NOT NULL ,     `collarsize` FLOAT(4,2) NOT NULL ,     `picture` LONGBLOB NOT NULL ,     `rented` BOOLEAN NOT NULL ,     PRIMARY KEY (`id`));查看我的输出    -> );Query OK, 0 rows affected (0.04 sec)MariaDB [test]> 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java