【发布时间】:2017-01-05 22:02:07
【问题描述】:
几天前我用这段代码创建了一个数据库
sql = "Create Database if not exists My_Test_Project";
stmnt.executeUpdate(sql);
当时还创建了一些表。现在我用这个查询在其中创建了两个新表
sql = "CREATE TABLE if not exists My_Test_Project.Sales_Invoice_Help "
+ "(inv_help_id INTEGER,"
+ "item VARCHAR(255),"
+ "qty INTEGER,"
+ "rate DECIMAL (7, 2),"
+ "total DECIMAL (7, 2),"
+ "sale_inv_id INTEGER,"
+ " PRIMARY KEY (inv_help_id),FOREIGN KEY (sale_inv_id) REFERENCES Sales_Invoice (sale_inv_id))";
stmnt.executeUpdate(sql);
当我执行我的程序时,它会抛出异常
SEVERE: null
java.sql.SQLException: No database selected
但同时这个查询执行成功
sql = "CREATE TABLE if not exists My_Test_Project.Sales_Invoice "
+ "(sale_inv_id INTEGER not NULL, "
+ "date VARCHAR(255), "
+ "acc_name VARCHAR(255),"
+ "due_date VARCHAR(255),"
+ "customer_name VARCHAR(255),"
+ "receipt_no VARCHAR(255),"
+ "freight_charges INTEGER,"
+ "deliver_to VARCHAR(255),"
+ "deliver_date VARCHAR(255),"
+ "total INTEGER,"
+ "discount INTEGER,"
+ "g_total INTEGER ,"
+ " PRIMARY KEY (sale_inv_id))";
stmnt.executeUpdate(sql);
注意: Sales_Invoice 表在顺序和代码中也是第一个。 我不知道为什么它会抛出异常。你能指导我吗?
【问题讨论】:
-
您没有选择数据库,如异常所示。第二个查询起作用的原因是因为您指定了数据库和表。
-
@tkausl 我还在
Sales_Invoice_Help表中将数据库指定为My_Test_Project.Sales_Invoice_Help。其中My_Test_Project是数据库的名称。 -
@tkausl 感谢您的快速回复。
标签: java mysql exception database-connection