首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQLSTATE[23000]:完整性约束冲突: 1062键“”PRIMARY“”的条目“%2”重复

SQLSTATE[23000]:完整性约束冲突: 1062键“”PRIMARY“”的条目“%2”重复
EN

Stack Overflow用户
提问于 2018-08-16 00:46:50
回答 2查看 2.4K关注 0票数 1

敬礼!我在Symfony中使用下面的原始sql语句将现有表中的大量行插入到具有相同结构的其他表中,其中包含大量现有行,因为使用的表是动态创建到运行时的,所以没有SYMFONY-ENTITY

代码语言:javascript
复制
$sql_insert = "INSERT INTO table1".$proid." SELECT * from ".$tablename." ON DUPLICATE KEY UPDATE table1".$proid.".id = table1".$proid.".id + 1";

仍然得到相同的错误:

SQLSTATE23000:完整性约束冲突: 1062键“”PRIMARY“”的条目“”2“”重复

它并不适用于每个条目,只适用于第一个插入的条目...请帮我解决这个问题。如何更新主键?

EN

回答 2

Stack Overflow用户

发布于 2018-08-16 06:48:03

Symfony帮助解决了重复密钥问题,如下所示:

代码语言:javascript
复制
$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);
                }
票数 1
EN

Stack Overflow用户

发布于 2018-08-16 02:03:38

正确的查询是:

代码语言:javascript
复制
INSERT INTO table(column_list)
VALUES(value_list)
ON DUPLICATE KEY UPDATE column_1 = new_value_1, column_2 = new_value_2, …

您需要为每一列更新key。

你可以从下面的链接中参考这个问题,希望它能解决这个问题:

  1. On Duplicate Key Update same as insert
  2. https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51862973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档