如果MySQL在Linux上区分大小写,为什么我会收到重复条目错误?

wljmcqd8  于 2023-01-20  发布在  Mysql
关注(0)|答案(1)|浏览(118)

我在使用MLflow记录ML实验的一些参数时,一直遇到BAD_REQUEST错误。具体的回溯是:

mlflow.exceptions.RestException: BAD_REQUEST: (pymysql.err.IntegrityError) (1062, "Duplicate entry 'hidden_Size-417080a853934d5d8a7cf5a27' for key 'params.PRIMARY'")
[SQL: INSERT INTO params (`key`, value, run_uuid) VALUES (%(key)s, %(value)s, %(run_uuid)s)]
[parameters: ({'key': 'dropout_rate', 'value': '0.1', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'model_type', 'value': '', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'model_name_or_path', 'value': '', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'model_checkpoint_path', 'value': '', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'hidden_size', 'value': '768', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'vocab_size',
'value': '49408', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'num_layers', 'value': '12', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'attn_heads', 'value': '8', 'run_uuid': '417080a853934d5d8a7cf5a27'}  ... displaying 10 of 40 total bo
und parameter sets ...  {'key': 'num_labels', 'value': '13', 'run_uuid': '417080a853934d5d8a7cf5a27'}, {'key': 'hidden_Size', 'value': '256', 'run_uuid': '417080a853934d5d8a7cf5a27'})]
(Background on this error at: https://sqlalche.me/e/14/gkpj)

我使用的参数解析器包含所有这些值,并使用mlflow.log_params(vars(args))记录它们。在代码中的某个地方,我给命名空间hidden_Size赋值,它与hidden_size相同,只是名称不同。
我读了一些资料,发现这是一个SQL问题,我可能给两个键分配了相同的值。但是读了一些资料之后,我发现MySQL在Linux中是区分大小写的,这也是我正在使用的。如果SQL是区分大小写的,为什么我会得到一个重复条目错误?hidden_sizehidden_Size不应该被视为单独的条目吗?

mgdq6dx1

mgdq6dx11#

如果字符串数据值使用不区分大小写的排序规则,则它们不区分大小写。这是所有操作系统的默认设置。
区分大小写的归类以_bin_cs结尾。请参见https://dev.mysql.com/doc/refman/8.0/en/case-sensitivity.html
字符串值的区分大小写与表标识符的区分大小写无关。
Linux默认情况下具有区分大小写的表标识符。有关此方面的完整详细信息,请阅读:https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html

相关问题