由于不区分大小写,MySQL插入抛出指定两次的列

qxgroojn  于 2023-02-07  发布在  Mysql
关注(0)|答案(1)|浏览(102)

据我所知,MySQL应该能够在UNIX系统上处理区分大小写的列名。2虽然可以创建两个列名只区分大小写的列(我希望这是正确的术语),但INSERT似乎在这方面有问题。
让我举一个例子:

CREATE TABLE test (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (ID));
ALTER TABLE test ADD `u` INT NOT NULL DEFAULT 0;
ALTER TABLE test ADD `U` INT NOT NULL DEFAULT 0;

一切都很好! MySQL创建了一个表并添加了两列。第一列命名为u,第二列命名为U。因此,假定MySQL能够处理区分大小写的列名。
但是像这样一个简单的插入命令

INSER INTO test (`U`,`u`) VALUES (1,1);

会抛出一条错误消息

ERROR 1110 (42000): Column 'U' specified twice

这在我看来有点不稳定:首先接受这些列名,然后拒绝插入。有人知道为什么会发生这种情况吗?
顺便说一下,MySQL版本是mysql Ver 14.14 Distrib 5.5.41, for debian-linux-gnu (x86_64) using readline 6.3

laximzn5

laximzn51#

如果使用javax.persistence.@JoinColumn,请添加"insertable = false, updatable = false"

相关问题