gpt4 book ai didi

mysql - 使 CMD 敏感以与 MySQL 一起使用?

转载 作者:可可西里 更新时间:2023-11-01 11:22:27 25 4
gpt4 key购买 nike

我在 bat 文件中有一个清理脚本,我想执行以下操作,但问题是我收到一个 mysql 错误,提示未知数据库并将其显示为 testdb。我想我可以更改我的代码 testdb,但我想知道。

我如何让 Windows cmd 使用区分大小写以便我可以正确地执行查询而不是总是使用小写?

mysql.exe -u root -q "drop database TestDB; create database TestDB;"

最佳答案

cmd.exe 不会更改命令的大小写,如下所示:

echo Hello There

我认为您的主要问题是您试图将区分大小写强加给一个并不真正支持区分大小写的环境。

你应该只是 embrace case-insensitivity并在所有系统上将 lower_case_table_names 设置为 1(如果其中一个系统是 Windows)。从你的症状来看,它听起来像是被设置为 0 不知何故这不是真正的犹太洁食。从文档中,这个变量的值意味着:

  • 0/表名和数据库名使用 CREATE TABLE 或 CREATE DATABASE 语句中指定的字母大小写存储在磁盘上。名称比较区分大小写。如果在文件名不区分大小写的系统(例如 Windows 或 Mac OS X)上运行 MySQL,则不应将此变量设置为 0。如果在不区分大小写的文件系统上使用 --lower-case-table-names=0 强制此变量为 0 并使用不同的字母大小写访问 MyISAM 表名,可能会导致索引损坏。

  • 1/表名以小写形式存储在磁盘上,名称比较不区分大小写。 MySQL 在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。

  • 2/表和数据库名称使用 CREATE TABLE 或 CREATE DATABASE 语句中指定的字母大小写存储在磁盘上,但 MySQL 在查找时将它们转换为小写字母。名称比较不区分大小写。这仅适用于不区分大小写的文件系统! InnoDB 表名以小写形式存储,如 lower_case_table_names=1。

您可以通过执行以下命令获取当前和新 session 值:

show variables like 'lower_case_table_names';
show global variables like 'lower_case_table_names';

关于mysql - 使 CMD 敏感以与 MySQL 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com