如何使 table 名称可由 sql 中的用户更改

How to make a table name changeable by the user in sql

我试图让一个程序在我每次打开它时都能在数据库中创建一个具有特定名称的 table,但我不能那样做,因为我将有两个 table具有相同的名称....我可以让程序要求用户在每次代码运行时输入不同的 table 名称吗?

Connection con = myConnection.getconnection();
PreparedStatement ps;
try {
    ps = con.prepareStatement("CREATE TABLE TEST (id int NOT NULL AUTO_INCREMENT , dafat INT(255), sinif varchar (255), price INT (255) , type varchar (255), total INT (255), PRIMARY KEY (id))");
    ps.executeUpdate();
} catch (Exception e) {
    System.out.println("out");
}

您打算在 运行 您的程序时每次都创建 TEST table 吗?。在这种情况下,在创建新的 table.

之前尝试 DROP TABLE IF EXISTS TEST

当然,您可以在构建 SQL 查询时为 table 名称添加后缀,但您需要验证用户输入以避免 SQL 注入。

    String tableSuffix = "_USER1";
    Connection con = myConnection.getconnection();
    PreparedStatement ps;
    try {
        ps = con.prepareStatement("CREATE TABLE TEST"+ userSuffix+" (id int NOT NULL AUTO_INCREMENT , dafat INT(255), sinif varchar (255), price INT (255) , type varchar (255), total INT (255), PRIMARY KEY (id))");
        ps.executeUpdate();
    } catch (Exception e) {
        System.err.println("Error creating table TEST_" + userSuffix);
        e.printStackTrace();
    }