|
- package mysql
-
- import "strings"
-
- var MySQLKeyword = map[string]string{
- "ACCESSIBLE": "ACCESSIBLE",
- "ADD": "ADD",
- "ALL": "ALL",
- "ALTER": "ALTER",
- "ANALYZE": "ANALYZE",
- "AND": "AND",
- "ARRAY": "ARRAY",
- "AS": "AS",
- "ASC": "ASC",
- "ASENSITIVE": "ASENSITIVE",
- "BEFORE": "BEFORE",
- "BETWEEN": "BETWEEN",
- "BIGINT": "BIGINT",
- "BINARY": "BINARY",
- "BLOB": "BLOB",
- "BOTH": "BOTH",
- "BY": "BY",
- "CALL": "CALL",
- "CASCADE": "CASCADE",
- "CASE": "CASE",
- "CHANGE": "CHANGE",
- "CHAR": "CHAR",
- "CHARACTER": "CHARACTER",
- "CHECK": "CHECK",
- "COLLATE": "COLLATE",
- "COLUMN": "COLUMN",
- "CONDITION": "CONDITION",
- "CONSTRAINT": "CONSTRAINT",
- "CONTINUE": "CONTINUE",
- "CONVERT": "CONVERT",
- "CREATE": "CREATE",
- "CROSS": "CROSS",
- "CUBE": "CUBE",
- "CUME_DIST": "CUME_DIST",
- "CURRENT_DATE": "CURRENT_DATE",
- "CURRENT_TIME": "CURRENT_TIME",
- "CURRENT_TIMESTAMP": "CURRENT_TIMESTAMP",
- "CURRENT_USER": "CURRENT_USER",
- "CURSOR": "CURSOR",
- "DATABASE": "DATABASE",
- "DATABASES": "DATABASES",
- "DAY_HOUR": "DAY_HOUR",
- "DAY_MICROSECOND": "DAY_MICROSECOND",
- "DAY_MINUTE": "DAY_MINUTE",
- "DAY_SECOND": "DAY_SECOND",
- "DEC": "DEC",
- "DECIMAL": "DECIMAL",
- "DECLARE": "DECLARE",
- "DEFAULT": "DEFAULT",
- "DELAYED": "DELAYED",
- "DELETE": "DELETE",
- "DENSE_RANK": "DENSE_RANK",
- "DESC": "DESC",
- "DESCRIBE": "DESCRIBE",
- "DETERMINISTIC": "DETERMINISTIC",
- "DISTINCT": "DISTINCT",
- "DISTINCTROW": "DISTINCTROW",
- "DIV": "DIV",
- "DOUBLE": "DOUBLE",
- "DROP": "DROP",
- "DUAL": "DUAL",
- "EACH": "EACH",
- "ELSE": "ELSE",
- "ELSEIF": "ELSEIF",
- "EMPTY": "EMPTY",
- "ENCLOSED": "ENCLOSED",
- "ESCAPED": "ESCAPED",
- "EXCEPT": "EXCEPT",
- "EXISTS": "EXISTS",
- "EXIT": "EXIT",
- "EXPLAIN": "EXPLAIN",
- "FALSE": "FALSE",
- "FETCH": "FETCH",
- "FIRST_VALUE": "FIRST_VALUE",
- "FLOAT": "FLOAT",
- "FLOAT4": "FLOAT4",
- "FLOAT8": "FLOAT8",
- "FOR": "FOR",
- "FORCE": "FORCE",
- "FOREIGN": "FOREIGN",
- "FROM": "FROM",
- "FULLTEXT": "FULLTEXT",
- "FUNCTION": "FUNCTION",
- "GENERATED": "GENERATED",
- "GET": "GET",
- "GRANT": "GRANT",
- "GROUP": "GROUP",
- "GROUPING": "GROUPING",
- "GROUPS": "GROUPS",
- "HAVING": "HAVING",
- "HIGH_PRIORITY": "HIGH_PRIORITY",
- "HOUR_MICROSECOND": "HOUR_MICROSECOND",
- "HOUR_MINUTE": "HOUR_MINUTE",
- "HOUR_SECOND": "HOUR_SECOND",
- "IF": "IF",
- "IGNORE": "IGNORE",
- "IN": "IN",
- "INDEX": "INDEX",
- "INFILE": "INFILE",
- "INNER": "INNER",
- "INOUT": "INOUT",
- "INSENSITIVE": "INSENSITIVE",
- "INSERT": "INSERT",
- "INT": "INT",
- "INT1": "INT1",
- "INT2": "INT2",
- "INT3": "INT3",
- "INT4": "INT4",
- "INT8": "INT8",
- "INTEGER": "INTEGER",
- "INTERVAL": "INTERVAL",
- "INTO": "INTO",
- "IO_AFTER_GTIDS": "IO_AFTER_GTIDS",
- "IO_BEFORE_GTIDS": "IO_BEFORE_GTIDS",
- "IS": "IS",
- "ITERATE": "ITERATE",
- "JOIN": "JOIN",
- "JSON_TABLE": "JSON_TABLE",
- "KEY": "KEY",
- "KEYS": "KEYS",
- "KILL": "KILL",
- "LAG": "LAG",
- "LAST_VALUE": "LAST_VALUE",
- "LATERAL": "LATERAL",
- "LEAD": "LEAD",
- "LEADING": "LEADING",
- "LEAVE": "LEAVE",
- "LEFT": "LEFT",
- "LIKE": "LIKE",
- "LIMIT": "LIMIT",
- "LINEAR": "LINEAR",
- "LINES": "LINES",
- "LOAD": "LOAD",
- "LOCALTIME": "LOCALTIME",
- "LOCALTIMESTAMP": "LOCALTIMESTAMP",
- "LOCK": "LOCK",
- "LONG": "LONG",
- "LONGBLOB": "LONGBLOB",
- "LONGTEXT": "LONGTEXT",
- "LOOP": "LOOP",
- "LOW_PRIORITY": "LOW_PRIORITY",
- "MASTER_BIND": "MASTER_BIND",
- "MASTER_SSL_VERIFY_SERVER_CERT": "MASTER_SSL_VERIFY_SERVER_CERT",
- "MATCH": "MATCH",
- "MAXVALUE": "MAXVALUE",
- "MEDIUMBLOB": "MEDIUMBLOB",
- "MEDIUMINT": "MEDIUMINT",
- "MEDIUMTEXT": "MEDIUMTEXT",
- "MEMBER": "MEMBER",
- "MIDDLEINT": "MIDDLEINT",
- "MINUTE_MICROSECOND": "MINUTE_MICROSECOND",
- "MINUTE_SECOND": "MINUTE_SECOND",
- "MOD": "MOD",
- "MODIFIES": "MODIFIES",
- "NATURAL": "NATURAL",
- "NOT": "NOT",
- "NO_WRITE_TO_BINLOG": "NO_WRITE_TO_BINLOG",
- "NTH_VALUE": "NTH_VALUE",
- "NTILE": "NTILE",
- "NULL": "NULL",
- "NUMERIC": "NUMERIC",
- "OF": "OF",
- "ON": "ON",
- "OPTIMIZE": "OPTIMIZE",
- "OPTIMIZER_COSTS": "OPTIMIZER_COSTS",
- "OPTION": "OPTION",
- "OPTIONALLY": "OPTIONALLY",
- "OR": "OR",
- "ORDER": "ORDER",
- "OUT": "OUT",
- "OUTER": "OUTER",
- "OUTFILE": "OUTFILE",
- "OVER": "OVER",
- "PARTITION": "PARTITION",
- "PERCENT_RANK": "PERCENT_RANK",
- "PRECISION": "PRECISION",
- "PRIMARY": "PRIMARY",
- "PROCEDURE": "PROCEDURE",
- "PURGE": "PURGE",
- "RANGE": "RANGE",
- "RANK": "RANK",
- "READ": "READ",
- "READS": "READS",
- "READ_WRITE": "READ_WRITE",
- "REAL": "REAL",
- "RECURSIVE": "RECURSIVE",
- "REFERENCES": "REFERENCES",
- "REGEXP": "REGEXP",
- "RELEASE": "RELEASE",
- "RENAME": "RENAME",
- "REPEAT": "REPEAT",
- "REPLACE": "REPLACE",
- "REQUIRE": "REQUIRE",
- "RESIGNAL": "RESIGNAL",
- "RESTRICT": "RESTRICT",
- "RETURN": "RETURN",
- "REVOKE": "REVOKE",
- "RIGHT": "RIGHT",
- "RLIKE": "RLIKE",
- "ROW": "ROW",
- "ROWS": "ROWS",
- "ROW_NUMBER": "ROW_NUMBER",
- "SCHEMA": "SCHEMA",
- "SCHEMAS": "SCHEMAS",
- "SECOND_MICROSECOND": "SECOND_MICROSECOND",
- "SELECT": "SELECT",
- "SENSITIVE": "SENSITIVE",
- "SEPARATOR": "SEPARATOR",
- "SET": "SET",
- "SHOW": "SHOW",
- "SIGNAL": "SIGNAL",
- "SMALLINT": "SMALLINT",
- "SPATIAL": "SPATIAL",
- "SPECIFIC": "SPECIFIC",
- "SQL": "SQL",
- "SQLEXCEPTION": "SQLEXCEPTION",
- "SQLSTATE": "SQLSTATE",
- "SQLWARNING": "SQLWARNING",
- "SQL_BIG_RESULT": "SQL_BIG_RESULT",
- "SQL_CALC_FOUND_ROWS": "SQL_CALC_FOUND_ROWS",
- "SQL_SMALL_RESULT": "SQL_SMALL_RESULT",
- "SSL": "SSL",
- "STARTING": "STARTING",
- "STORED": "STORED",
- "STRAIGHT_JOIN": "STRAIGHT_JOIN",
- "SYSTEM": "SYSTEM",
- "TABLE": "TABLE",
- "TERMINATED": "TERMINATED",
- "THEN": "THEN",
- "TINYBLOB": "TINYBLOB",
- "TINYINT": "TINYINT",
- "TINYTEXT": "TINYTEXT",
- "TO": "TO",
- "TRAILING": "TRAILING",
- "TRIGGER": "TRIGGER",
- "TRUE": "TRUE",
- "UNDO": "UNDO",
- "UNION": "UNION",
- "UNIQUE": "UNIQUE",
- "UNLOCK": "UNLOCK",
- "UNSIGNED": "UNSIGNED",
- "UPDATE": "UPDATE",
- "USAGE": "USAGE",
- "USE": "USE",
- "USING": "USING",
- "UTC_DATE": "UTC_DATE",
- "UTC_TIME": "UTC_TIME",
- "UTC_TIMESTAMP": "UTC_TIMESTAMP",
- "VALUES": "VALUES",
- "VARBINARY": "VARBINARY",
- "VARCHAR": "VARCHAR",
- "VARCHARACTER": "VARCHARACTER",
- "VARYING": "VARYING",
- "VIRTUAL": "VIRTUAL",
- "WHEN": "WHEN",
- "WHERE": "WHERE",
- "WHILE": "WHILE",
- "WINDOW": "WINDOW",
- "WITH": "WITH",
- "WRITE": "WRITE",
- "XOR": "XOR",
- "YEAR_MONTH": "YEAR_MONTH",
- "ZEROFILL": "ZEROFILL",
- }
-
- func Check(fieldOrTableName string) bool {
- _, ok := MySQLKeyword[fieldOrTableName]
- if ok {
- return true
- }
- if fieldOrTableName != "" {
- fieldOrTableName = strings.ToUpper(fieldOrTableName)
- }
- _, ok = MySQLKeyword[fieldOrTableName]
- return ok
- }
-
- func CheckEscape(fieldOrTableName string) bool {
- return Check(fieldOrTableName)
- }
-
- func CheckAndReplace(fieldOrTableName string) string {
- if Check(fieldOrTableName) {
- return "`" + fieldOrTableName + "`"
- }
- return fieldOrTableName
- }
|