敬礼!我在Symfony中使用以下原始sql语句从现有表INTO插入具有相同结构的其他表中的大量行,该表还包含大量现有行[因为使用过的表是动态创建到运行时的,所以没有SYMFONY -实体]:
$sql_insert = "INSERT INTO table1".$proid." SELECT * from ".$tablename." ON DUPLICATE KEY UPDATE table1".$proid.".id = table1".$proid.".id + 1";
仍然出现相同的错误:
SQLSTATE [23000]:违反完整性约束:1062键“ PRIMARY”的条目“ 2”重复
它不适用于所有条目,仅适用于第一个插入的条目...请帮助我解决此问题。如何更新主键?
最佳答案
Symfony帮助解决了重复的密钥问题,如下所示:
$conn = $this->getDoctrine()->getManager()->getConnection();
$sql_insert = " SELECT * from ".$tablename."";
$stmt = $conn->prepare($sql_insert);
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $item => $row) {
$dataArray1 = array(
'a' => $row['a'],
'b' => $row['b'],
...);
$conn->insert('pro'.$id.'', $dataArray1);
}
关于mysql - SQLSTATE [23000]:违反完整性约束:1062键“PRIMARY”的条目“2”重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51862973/