问题描述
当我将触发器代码添加到程序中时,我的触发器代码不起作用,它给出了错误并且无法连接到数据库。
我怀疑以下代码是造成此问题的原因,因为在添加触发器查询之前,其他插入查询工作正常。
public class Connect_db {
Connection con;
public static Statement st = null;
public static Connection connectdb(){
try{
Class.forName("org.sqlite.JDBC");
Connection con= DriverManager.getConnection("jdbc:sqlite:eGiftCard.db","","");
st=con.createStatement();
st.executeUpdate("CREATE TABLE IF NOT EXISTS SetUpReward(Number INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, \n"
+ "min_Value DOUBLE (18, 2), \n"
+ "max_Value DOUBLE (18, 2), \n"
+ "reward_Point FLOAT, \n"
+ "card_Length INTEGER, \n"
+ "PayPal_Email TEXT, \n"
+ "Bank_Name TEXT, \n"
+ "Bank_Account TEXT)");
}
我收到以下错误。
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database ()
at org.sqlite.DB.newSQLException(DB.java:374)
at org.sqlite.DB.throwex(DB.java:369)
at org.sqlite.NestedDB._exec(NestedDB.java:156)
at org.sqlite.Stmt.executeUpdate(Stmt.java:132)
at database_files.Connect_db.connectdb(Connect_db.java:56)
at view_controller.IGisftCardController.initialize(IGisftCardController.java:230
1楼
CREATE TRIGGER IF NOT EXISTS eGiftCard.audit_log ...
INSERT INTO eGiftCard.ActivateAudit ...
数据库名称不是eGiftCard而是main 。
该数据库名是不一样的文件名。
这里没有理由使用数据库名称。
只需删除eGiftCard.
。
此外,触发器的END;
不见了。