
prerna.util.sql.MySQLQueryUtil Maven / Gradle / Ivy
The newest version!
package prerna.util.sql;
import java.util.Collection;
public class MySQLQueryUtil extends AnsiSqlQueryUtil {
MySQLQueryUtil() {
super();
setDbType(RdbmsTypeEnum.MYSQL);
}
MySQLQueryUtil(String connectionUrl, String username, String password) {
super(connectionUrl, username, password);
setDbType(RdbmsTypeEnum.MYSQL);
}
@Override
public String getEscapeKeyword(String selector) {
return "`" + selector + "`";
}
/////////////////////////////////////////////////////////////////////////////////////
@Override
public boolean allowIfExistsModifyColumnSyntax() {
return false;
}
@Override
public boolean allowIfExistsIndexSyntax() {
return false;
}
/////////////////////////////////////////////////////////////////////////////////////
@Override
public String modColumnType(String tableName, String columnName, String dataType) {
// should escape keywords
if(isSelectorKeyword(tableName)) {
tableName = getEscapeKeyword(tableName);
}
if(isSelectorKeyword(columnName)) {
columnName = getEscapeKeyword(columnName);
}
return "ALTER TABLE " + tableName + " MODIFY COLUMN " + columnName + " " + dataType + ";";
}
@Override
public String dropIndex(String indexName, String tableName) {
// should escape keywords
if(isSelectorKeyword(tableName)) {
tableName = getEscapeKeyword(tableName);
}
return "ALTER TABLE " + tableName + " DROP INDEX " + indexName;
}
/////////////////////////////////////////////////////////////////////////////////////
/*
* Query database scripts
*/
@Override
public String tableExistsQuery(String tableName, String database, String schema) {
return "SELECT TABLE_NAME, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='" + schema + "' AND TABLE_NAME='" + tableName + "';";
}
@Override
public String tableConstraintExistsQuery(String constraintName, String tableName, String database, String schema) {
return "SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_NAME = '" + constraintName + "' AND TABLE_NAME = '" + tableName + "' AND CONSTRAINT_SCHEMA='" + schema + "'";
}
@Override
public String referentialConstraintExistsQuery(String constraintName, String database, String schema) {
return "SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME = '" + constraintName + "' AND CONSTRAINT_SCHEMA='" + schema + "'";
}
@Override
public String getAllColumnDetails(String tableName, String database, String schema) {
return "SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='" + schema + "' AND TABLE_NAME = '" + tableName + "';";
}
@Override
public String columnDetailsQuery(String tableName, String columnName, String database, String schema) {
return "SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='" + schema + "' AND TABLE_NAME = '" + tableName + "' AND COLUMN_NAME='" + columnName + "';";
}
@Override
public String getIndexList(String database, String schema) {
return "SELECT DISTINCT INDEX_NAME, TABLE_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA='" + schema + "';";
}
@Override
public String getIndexDetails(String indexName, String tableName, String database, String schema) {
return "SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA='" + schema + "' AND INDEX_NAME='" + indexName + "' AND TABLE_NAME='" + tableName + "';";
}
@Override
public String allIndexForTableQuery(String tableName, String database, String schema) {
return "SELECT INDEX_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA='" + schema + "' AND TABLE_NAME='" + tableName + "';";
}
@Override
public String alterTableDropColumns(String tableName, Collection columnNames) {
// should escape keywords
if(isSelectorKeyword(tableName)) {
tableName = getEscapeKeyword(tableName);
}
StringBuilder alterString = new StringBuilder("ALTER TABLE " + tableName + " DROP COLUMN ");
int i = 0;
for(String newColumn : columnNames) {
if (i > 0) {
alterString.append(", DROP COLUMN ");
}
// should escape keywords
if(isSelectorKeyword(newColumn)) {
newColumn = getEscapeKeyword(newColumn);
}
alterString.append(newColumn);
i++;
}
alterString.append(";");
return alterString.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy