我正在尝试在 mysql 中动态创建表并使用用户提供的电子邮件地址为其分配名称。但是每当我尝试动态分配表名称时,它都会显示错误,并且我不知道有任何其他方法来满足我的要求。
这是我编写的代码
String TableName = Email.getText();
try {
String myTableName = "CREATE TABLE '" + TableName + "' "
+ "(id INTEGER not NULL, "
+ " first VARCHAR(255), "
+ " last VARCHAR(255), "
+ " age INTEGER, "
+ " PRIMARY KEY ( id ))";;
Class.forName(m.RegisterationString);
java.sql.Connection con;
con = DriverManager.getConnection(m.URL, m.UserName, m.Password);
Statement State = con.createStatement();
//This line has the issue
State.executeUpdate(myTableName);
System.out.println("Table Created");
}
最佳答案
在MySQL中,表的名称不应该在''
之间,它可以在:
String myTableName ="CREATE TABLE `" + tableName + "`"
//--------------------------------^-----------------^
<小时/>
注意为了保持良好的习惯,不要以大写字母开头变量名称,例如 State
或 TableName
、Email
关于java - 如何在mysql服务器中动态分配表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45478343/