mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-29 02:32:33 +08:00
Delete operations of functions
This commit is contained in:
@ -3,6 +3,7 @@ package ai.chat2db.plugin.mysql;
|
||||
import ai.chat2db.spi.DBManage;
|
||||
import ai.chat2db.spi.jdbc.DefaultDBManage;
|
||||
import ai.chat2db.spi.model.AsyncContext;
|
||||
import ai.chat2db.spi.model.Function;
|
||||
import ai.chat2db.spi.model.Procedure;
|
||||
import ai.chat2db.spi.sql.SQLExecutor;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@ -223,6 +224,13 @@ public class MysqlDBManage extends DefaultDBManage implements DBManage {
|
||||
SQLExecutor.getInstance().execute(connection, sql, resultSet -> null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteFunction(Connection connection, String databaseName, String schemaName, Function function) {
|
||||
String functionNewName = getSchemaOrFunctionName(function.getFunctionBody(), databaseName, function);
|
||||
String sql = "DROP FUNCTION " + functionNewName;
|
||||
SQLExecutor.getInstance().execute(connection, sql, resultSet -> null);
|
||||
}
|
||||
|
||||
private static String getSchemaOrProcedureName(String procedureBody, String schemaName, Procedure procedure) {
|
||||
if (procedureBody.toLowerCase().contains(schemaName.toLowerCase())) {
|
||||
return procedure.getProcedureName();
|
||||
@ -231,6 +239,14 @@ public class MysqlDBManage extends DefaultDBManage implements DBManage {
|
||||
}
|
||||
}
|
||||
|
||||
private static String getSchemaOrFunctionName(String functionBody, String schemaName, Function function) {
|
||||
if (functionBody.toLowerCase().contains(schemaName.toLowerCase())) {
|
||||
return function.getFunctionName();
|
||||
} else {
|
||||
return schemaName + "." + function.getFunctionName();
|
||||
}
|
||||
}
|
||||
|
||||
public static String format(String tableName) {
|
||||
return "`" + tableName + "`";
|
||||
}
|
||||
|
Reference in New Issue
Block a user