在本文中,我们将带你了解由于mysqldb区分大小写,Prestoshowtables显示一个不存在的表在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的com.facebook.prest
在本文中,我们将带你了解由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表在这篇文章中,同时我们还将给您一些技巧,以帮助您实现更有效的com.facebook.presto.sql.tree.ShowTables的实例源码、How to fix Mysql table crashes、java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?、k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1。
本文目录一览:- 由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表
- com.facebook.presto.sql.tree.ShowTables的实例源码
- How to fix Mysql table crashes
- java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?
- k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1
由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表
为了处理 MySQL 中的非小写表名,您目前需要设置 case-insensitive-name-matching=true
目录属性。
将在 https://github.com/trinodb/trino/issues/17 中提供对混合大小写表名和列名的更适当的支持。
com.facebook.presto.sql.tree.ShowTables的实例源码
@Override protected Void visitShowTables(ShowTables node,Integer context) { builder.append("SHOW TABLES"); node.getSchema().ifPresent((value) -> builder.append(" FROM ") .append(value)); node.getLikePattern().ifPresent((value) -> builder.append(" LIKE ") .append(formatStringLiteral(value))); return null; }
@Override protected Void visitShowTables(ShowTables node,Integer context) { builder.append("SHOW TABLES"); node.getSchema().ifPresent((value) -> builder.append(" FROM ") .append(value)); node.getLikePattern().ifPresent((value) -> builder.append(" LIKE ") .append(formatStringLiteral(value))); return null; }
@Override public Node visitShowTables(sqlbaseParser.ShowTablesContext context) { return new ShowTables( getLocation(context),Optional.ofNullable(context.qualifiedname()) .map(AstBuilder::getQualifiedname),getTextIfPresent(context.pattern) .map(AstBuilder::unquote)); }
@Test public void testShowTables() throws Exception { assertStatement("SHOW TABLES",new ShowTables(Optional.empty(),Optional.empty())); assertStatement("SHOW TABLES FROM a",new ShowTables(Optional.of(Qualifiedname.of("a")),Optional.empty())); assertStatement("SHOW TABLES IN a LIKE '%'",Optional.of("%"))); }
@Override protected Void visitShowTables(ShowTables node,Integer context) { builder.append("SHOW TABLES"); node.getSchema().ifPresent((value) -> builder.append(" FROM ") .append(value)); node.getLikePattern().ifPresent((value) -> builder.append(" LIKE ") .append(formatStringLiteral(value))); return null; }
@Override protected RelationType visitShowTables(ShowTables showTables,AnalysisContext context) { String catalogName = session.getCatalog().orElse(null); String schemaName = session.getSchema().orElse(null); Optional<Qualifiedname> schema = showTables.getSchema(); if (schema.isPresent()) { List<String> parts = schema.get().getParts(); if (parts.size() > 2) { throw new SemanticException(INVALID_SCHEMA_NAME,showTables,"Too many parts in schema name: %s",schema); } if (parts.size() == 2) { catalogName = parts.get(0); } schemaName = schema.get().getSuffix(); } if (catalogName == null) { throw new SemanticException(CATALOG_NOT_SPECIFIED,"Catalog must be specified when session catalog is not set"); } if (schemaName == null) { throw new SemanticException(SCHEMA_NOT_SPECIFIED,"Schema must be specified when session schema is not set"); } if (!Metadata.listSchemaNames(session,catalogName).contains(schemaName)) { throw new SemanticException(MISSING_SCHEMA,"Schema '%s' does not exist",schemaName); } Expression predicate = equal(nameReference("table_schema"),new StringLiteral(schemaName)); Optional<String> likePattern = showTables.getLikePattern(); if (likePattern.isPresent()) { Expression likePredicate = new LikePredicate(nameReference("table_name"),new StringLiteral(likePattern.get()),null); predicate = logicalAnd(predicate,likePredicate); } Query query = simpleQuery( selectList(aliasedname("table_name","Table")),from(catalogName,TABLE_TABLES),predicate,ordering(ascending("table_name"))); return process(query,context); }
How to fix Mysql table crashes
Please use mysql_upgrade to fix this error.
Looking for ''mysql'' as: mysql
Looking for ''mysqlcheck'' as: mysqlcheck
Error: Failed while fetching Server version! Could be due to unauthorized access.
FATAL ERROR: Upgrade failed
chown -R mysql /var/lib/mysql
mysql_upgrade -u root -p
java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?
我知道更改会话变量NLS_COMP和NLS_SORT,但我想知道在查询本身是否有另一个窍门,而不改变会话变量
解决方法
select upper(convert('This is a têst','US7ASCII')),upper(convert('THIS is A test','US7ASCII')) from dual; select 1 from dual where upper(convert('This is a têst','US7ASCII')) = upper(convert('THIS is A test','US7ASCII'))
CONVERT将重音字符减少到映射的ASCII等价物,而UPPER将小写字母强制为大写.所得到的字符串应该是匹配的.
k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
creationTimestamp: "2019-05-02T16:03:33Z"
generation: 1
labels:
run: k8s-mysql
name: k8s-mysql
namespace: default
resourceVersion: "9665"
selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/k8s-mysql
uid: d600e4f1-6cf3-11e9-940a-1eebfc19a3f6
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
run: k8s-mysql
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: k8s-mysql
spec:
containers:
- name: k8s-mysql
image: mysql
imagePullPolicy: Always
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
ports:
- containerPort: 3306
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
args:
- --lower_case_table_names=1
- --skip-ssl
- --character_set_server=utf8
- --explicit_defaults_for_timestamp
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2019-05-02T16:05:27Z"
lastUpdateTime: "2019-05-02T16:05:27Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
- lastTransitionTime: "2019-05-02T16:03:33Z"
lastUpdateTime: "2019-05-02T16:05:27Z"
message: ReplicaSet "k8s-mysql-764ff9c9ff" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
observedGeneration: 1
readyReplicas: 1
replicas: 1
updatedReplicas: 1
最主要的是:
args:
- --lower_case_table_names=1
关于由于 mysqldb 区分大小写,Presto show tables 显示一个不存在的表的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于com.facebook.presto.sql.tree.ShowTables的实例源码、How to fix Mysql table crashes、java – 如何在Oracle 10gR2和JPA中做一个不区分大小写和不区分大小写的操作?、k8s kubernetes mysql 8.0 设置表不区分大小写 lower_case_table_names=1等相关知识的信息别忘了在本站进行查找喔。
本文标签: