据我所知,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
1条答案
按热度按时间laximzn51#
如果使用
javax.persistence.@JoinColumn
,请添加"insertable = false, updatable = false"