我在更新氧化eshop 4.7中的表 public void createHoleObjectType (GameObject holeObject, HoleObjectType holeObjectType, Vector3 holeObjectPosition, bool isCollider2DEnabled) {
currentHoleObject = (GameObject)Instantiate (holeObject, holeObjectPosition, Quaternion.identity);
setHoleObjectType (holeObjectType);
}
时面临一种奇怪的行为。
表oxseo
具有以下架构:
oxseo
并且在字段上有一个PRIMARY(,也是键名)键:
+------------+---------+----------+----------+----------+----------+-------+
| OXOBJECTID | OXIDENT | OXSHOPID | OXLANGID | OXSTDURL | OXSEOURL | [...] |
+------------+---------+----------+----------+----------+----------+-------+
我尝试通过linux shell执行以下sql(用虚拟数据替换实值):
+---------+----------+--------+
| OXIDENT | OXSHOPID | OXLANG |
+---------+----------+--------+
导致错误:
ERROR 1062(23000):重复录入' 8e4b0ac7 [...] - oxbaseshop-0'对于关键' PRIMARY'`
但是,当使用phpMyAdmin在整个表中查找字符串UPDATE oxseo
SET
OXIDENT = "8e4b0ac7[...]",
OXSEOURL = "my/seo/url/"
WHERE
OXOBJECTID = "123"`
时,没有返回任何行。尽管我已经使用
8e4b0ac7[...]
等等。
任何人都知道原因是什么?
答案 0 :(得分:2)
很简单。无论该更新语句尝试做什么,都会使表处于PRIMARY键中具有重复条目(2行或更多行)的状态,如show create table oxseo
的输出中所示。
该PRIMARY键可以位于单个列上,也可以是复合(多列)键。
db引擎禁止它,因为架构禁止它。