敬礼!我在Symfony中使用下面的原始sql语句将现有表中的大量行插入到具有相同结构的其他表中,其中包含大量现有行,因为使用的表是动态创建到运行时的,所以没有SYMFONY-ENTITY
$sql_insert = "INSERT INTO table1".$proid." SELECT * from ".$tablename." ON DUPLICATE KEY UPDATE table1".$proid.".id = table1".$proid.".id + 1";
仍然得到相同的错误:
SQLSTATE23000:完整性约束冲突: 1062键“”PRIMARY“”的条目“”2“”重复
它并不适用于每个条目,只适用于第一个插入的条目...请帮我解决这个问题。如何更新主键?
发布于 2018-08-16 06:48:03
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);
}
发布于 2018-08-16 02:03:38
正确的查询是:
INSERT INTO table(column_list)
VALUES(value_list)
ON DUPLICATE KEY UPDATE column_1 = new_value_1, column_2 = new_value_2, …
您需要为每一列更新key。
你可以从下面的链接中参考这个问题,希望它能解决这个问题:
https://stackoverflow.com/questions/51862973
复制相似问题