SQL";“创建表格”;查询在java中不起作用

SQL";“创建表格”;查询在java中不起作用,java,mysql,sql,Java,Mysql,Sql,我在以下查询中遇到一个错误,无法找到修复方法,以下是查询代码: CREATE TABLE IF NOT EXISTS `minecraftitems.blocks` (`player` varchar(16) NOT NULL, `itemid` text NOT NULL, `action` text NOT NULL,`time` big(20) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1; 错误代码: 10:48:05 [GRAVE] c

我在以下查询中遇到一个错误,无法找到修复方法,以下是查询代码:

CREATE TABLE IF NOT EXISTS `minecraftitems.blocks` (`player` varchar(16) NOT NULL, `itemid` text NOT NULL, `action` text NOT NULL,`time` big(20) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;
错误代码:

10:48:05 [GRAVE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'CREATE TABLE IF NOT EXISTS `blocks` (`player` varchar(16) NOT NULL, `itemid` tex' at line 1
编辑: 将查询更改为:

            PreparedStatement sql = con.prepareStatement(
                  "SELECT '" + db + "'; CREATE TABLE IF NOT EXISTS `minecraftitems.blocks` (\r\n" + 
                        "    `player` varchar(16) NOT NULL,\r\n" + 
                        "    `itemid` text NOT NULL,\r\n" + 
                        "    `action` text NOT NULL,\r\n" + 
                        "    `time` bigint(20) NOT NULL\r\n" + 
                        "    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
我现在得到了这个错误:

11:07:22 [GRAVE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'CREATE TABLE IF NOT EXISTS `minecraftitems.blocks` (`player` varchar(16) N' at line 1

PhpMyAdmin运行查询时没有任何问题。

您的查询中有语法错误。它的
bigint
不仅仅是
big
将其更改为
time bigint(20)not NULL
这是您的查询:

CREATE TABLE IF NOT EXISTS `minecraftitems.blocks` (
    `player` varchar(16) NOT NULL,
    `itemid` text NOT NULL,
    `action` text NOT NULL,
    `time` big(20) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
问题在于
big
不是一种数据类型。你是指
bigint
time
timestamp
还是其他什么?将名为
time
的字段存储为整数似乎可疑

注意:这将创建一个名为“mincraftitems.blocks”的表,这似乎是该语句的意图。如果您试图在
minecraftitems
中创建
,则您需要:

CREATE TABLE IF NOT EXISTS `minecraftitems`.`blocks` (

在一行中输入,并删除SELECT db;它成功了。这是我的问题

PreparedStatement sql = con.prepareStatement("CREATE TABLE IF NOT EXISTS " + db + ".blocks (`player` varchar(16) NOT NULL, `itemid` text NOT NULL, `location` text NOT NULL, `action` text NOT NULL, `time` bigint(20) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1");

这不应该也是
'minecraftitems`.'blocks`
?(在数据库和表名周围打勾)@a_horse_和_no_名称。也许出于某种不正当的原因,OP希望在表的名称中加一个句号。我为此添加了一个注释。这是一个时间戳&我想在名为blocks的数据库中创建一个表。@davidp027:如果数据库名为
blocks
,那么您的名称是错误的。它必须是
`blocks`.`minecraftitems`
。首先指定数据库,然后指定表名。请参阅手册了解详细信息:我已经选择了数据库“minecraftitems”&当我在phpmyadmin中进行查询时,我的查询工作正常。似乎是我的Java格式问题这个问题似乎离题了,因为它是一个“查找我的打字错误问题”