2012-10-30 69 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(); 
     } 
} 

此代碼工作完全正常,我在系統中創建的表。你能再請檢查一下嗎?

相關問題