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格式问题这个问题似乎离题了,因为它是一个“查找我的打字错误问题”