2012-10-30 37 views
-2

所以我想USR用下面的代码创建此表:java.sql.SQLSyntaxErrorException:“BOOL”类型不存在

psCreateTable = con.prepareStatement("CREATE TABLE usr (pk_ID Integer NOT NULL, username VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, admin BOOL DEFAULT FALSE, PRIMARY KEY(pk_ID))"); 
psCreateTable.execute(); 

当我执行的代码我得到这个异常:

java.sql.SQLSyntaxErrorException: TYPE 'BOOL' does not exist 

这应该最肯定工作得很好,因为它是一个从另一个表copypasted。那么,为什么不工作?

有什么建议吗?

谢谢。

+0

您是否尝试过用'TINYINT(1)''而不是BOOL'? –

+0

不,我特别不想。太麻烦了,我只知道布尔应该工作。 –

+0

您确定您的目标是相同的数据库版本吗? –

回答

0

你的查询看起来都很好。我认为你必须使用psCreateTable.executeUpdate();而不是psCreateTable.execute();。试试这个,让我知道。

此外,@all http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html 布尔和TINYINT(1)是同义词。

+0

似乎不起作用。从'BOOL'改为'TINYINT(1)',之后,我现在得到以下错误:'java.sql.SQLSyntaxErrorException:语法错误:遇到“(”第1行,列181.' –

+0

你没有改变布尔以TINYINT既是是相同的,有效的,你可以复制粘贴整个堆栈跟踪你试过'psCreateTable.executeUpdate();?' –

+0

是的,我试过'的executeUpdate();' –

0

嗨,我编辑试试这个代码,,

try 
      { 
      Statement stmt; 
      stmt=con.createStatement(); 
      stmt.executeUpdate("CREATE TABLE usr (pk_ID Integer NOT NULL, username VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, admin BOOL DEFAULT FALSE, PRIMARY KEY(pk_ID))"); 
      }catch(Exception ex) 
      { 
       System.out.println(""+ex); 
      } 

谢谢

+0

一样,无法正常工作或 –

+0

好的朋友等一下,我会尝试在Java代码和更新快,,, –

+0

喜方法executeUpdate(查询)尝试,,,在mysql中多了一个变化,我发现即,布尔变成TINYINT(1),,,所以我的东西两个R simlear使用真1假0 .... –

1
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.awt.print.*; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
import java.text.*; 

public class Test { 
public static void main(String args[]) throws SQLException { 
String url = "jdbc:mysql://localhost:3306/rms"; 
String driver = "com.mysql.jdbc.Driver"; 
Connection conn = null; 
try { 
    conn = DriverManager.getConnection(url,"username","password"); 
} catch (SQLException e2) { 
    e2.printStackTrace(); 
} 

PreparedStatement pstmt = conn.prepareStatement("CREATE TABLE usr (pk_ID Integer NOT NULL, username VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, admin BOOL DEFAULT FALSE, PRIMARY KEY(pk_ID))"); 

     pstmt.executeUpdate(); 

     conn.close(); 
     } 
} 

此代码工作完全正常,我在系统中创建的表。你能再请检查一下吗?

相关问题