敬礼!我在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/

10-15 02:57