java.sql.SQLSyntaxErrorException:TYPE'BOOL'不存在

时间:2012-10-30 04:46:12

标签: java mysql prepared-statement

所以我正在尝试使用以下代码创建此表usr:

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

这绝对可以正常工作,因为它是从另一张桌子上复制的。那为什么不起作用?

有什么建议吗?

感谢。

3 个答案:

答案 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();
      }
 }

此代码在我的系统中完美运行并创建了表。可以请再次检查。

答案 1 :(得分:0)

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

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

答案 2 :(得分: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);
            }

谢谢