`

在MySql中建立存储过程和解决insert into select 中主键冲突的问题

 
阅读更多
首先说需求,我想重复插入大量数据,那么首先想到的,就是用insert into select语句。

但是因为mysql中没有将主键设为自增长,导致每次都会报主键冲突的错误,插入失败。


对于这个问题,就是灵活得改变一下。之前,我们一直用的是 insert into tableA select * frrom tableA

因此,现在我们修改为:insert into tableA(A,B,C)  (select (A,B,C) from tableA)


或者,在数据库中,写一个存储过程,然后通过调用它,实现目的。

代码 :

drop PROCEDURE testPRO;
CREATE PROCEDURE testPRO()  
BEGIN 
      DECLARE a INT DEFAULT 1;      
      WHILE (a <= 40) DO      
     INSERT into tableA(A,B,C) VALUES(1','2','3');     
     set a = a+1;
     END WHILE;
END 
 

//调用此存储过程
call testPRO();

 

FROM http://blog.csdn.net/angus_17/article/details/8020833

分享到:
评论

相关推荐

    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)

    在SQL中,表复制是常见的数据操作,主要通过两种语句来实现:`SELECT INTO` 和 `INSERT INTO SELECT`。这两种语句在SQL数据库和Oracle数据库中略有不同,下面将详细解析它们的工作原理和使用场景。 1. `INSERT INTO...

    实验训练1 在MySQL中创建数据库和表.docx

    "MySQL数据库创建和表创建" 本教程将指导您在MySQL中创建数据库和表,首先需要安装和配置MySQL数据库。...本教程指导您在MySQL中创建数据库和表,了解MySQL的安装和配置过程,并学习了基本的SQL语句和数据表的设计。

    mysql双主主键冲突处理办法.docx

    综上所述,处理 MySQL 双主主键冲突通常涉及查找冲突数据、修改现有数据、使用 REPLACE INTO 或 INSERT IGNORE INTO 语句,以及优化复制策略。根据具体需求和业务场景,选择最适合的解决方案以确保数据的一致性和...

    insert into

    5. **自增主键处理**:对于自增主键,通常无需在`INSERT INTO`语句中指定其值,数据库会自动为新记录生成一个唯一的值。例如,在MySQL中,如果`ID`字段是自增的,上面的例子可以简化为只指定`Name`和`Age`。 在提供...

    java操作mysql存储过程的例子.doc

    在Java编程中,与MySQL数据库进行交互是常见的任务,其中涉及到的一个高级特性就是操作存储过程。存储过程是预编译的SQL语句集合,可以包含条件判断、循环等控制流语句,提供了一种更高效、更安全的方式来执行数据库...

    MySQL存储过程作业6.docx

    本文详细介绍了如何在MySQL中创建数据库、表以及存储过程,并给出了具体的示例代码。这些存储过程涵盖了常见的操作需求,如数据插入、查询、格式化日期以及计算年龄等。通过学习这些内容,你可以更好地理解和掌握...

    实验训练1-在MySQL中创建数据库和表作业.doc

    本资源摘要信息介绍了 MySQL 中创建数据库和表的基本操作步骤,并对每个步骤进行了详细的解释。 一、查看当前存在的数据库 在 MySQL 中,使用 `show databases;` 语句可以查看当前服务器上存在的所有数据库。这个...

    mysql雪花算法生成唯一整型ID主键的实现方法

    在MySQL中实现雪花算法,主要是通过自定义函数来模拟这个过程。 首先,我们需要创建一个名为`sequence`的表来存储序列信息。这个表有四个字段:`name`用于存储序列名称,`current_value`记录当前序列值,`increment...

    mysql存储过程与视图(存储过程语法介绍、MySQL视图用法、注意事项)..docx

    ### MySQL存储过程与视图详解 ...它们各自解决了不同的问题,存储过程主要用于封装复杂的数据库操作逻辑,而视图则更多地用于简化查询和提高数据安全性。合理地利用这两种工具,可以在实际开发中带来极大的便利。

    mysql实现char类型主键自增长

    在MySQL数据库管理中,自增长主键是一种常见的设计模式,主要用于自动为每一行记录生成一个唯一的标识符。然而,这种自增长通常与整型数据类型(如INT)关联,而较少见于字符型数据(如CHAR)。本文将深入探讨如何在...

    sql数据库,建立表,主键,和insert及update

    根据提供的文件信息,我们可以深入探讨以下几个...在未来的学习和工作中,随着对SQL语言掌握程度的加深,你还将会接触到更多高级功能,比如事务处理、存储过程、触发器等,这些将进一步提升你在数据库领域的专业能力。

    MySQL replace into 用法.txt

    根据提供的文件信息,本文将详细解释 MySQL 中 `REPLACE INTO` 的使用方法及特性,并对比其与 `INSERT INTO` 的不同之处。 ### MySQL REPLACE INTO 介绍 #### 1. REPLACE INTO 的基本概念 `REPLACE INTO` 是 ...

    MyBatis在insert插入操作时返回主键ID的配置(推荐)

    本文将详细介绍 MyBatis 在 insert 插入操作时返回主键 ID 的配置,包括 MySQL 和 Oracle 两个数据库的用法。 MySQL 用法 在 MySQL 中,MyBatis 提供了一个简单的配置来返回插入的主键 ID。我们可以在 insert 语句...

    存储过程-自动生成编号

    此时,可以在存储过程中使用事务和锁机制,确保在同一时间只有一个线程能够执行编号生成。 此外,还可以考虑引入分布式ID生成系统,如Twitter的Snowflake或者Google的UUID,它们能生成全局唯一的64位或128位ID,...

    自动跳号的函数和存储过程

    在数据库管理中,"自动跳号"通常指的是...总结,自动跳号的函数和存储过程在数据库管理中扮演着关键角色,它们帮助我们维护数据的唯一性和完整性。理解并熟练运用这些机制,对于构建高效、稳定的数据库应用至关重要。

    MySQL中REPLACE INTO和INSERT INTO的区别分析

    MySQL中的`REPLACE INTO`和`INSERT INTO`都是用于向数据库表中添加数据的SQL语句,但它们在处理已有数据冲突时的行为有所不同。理解这两者的区别对于正确地管理数据库中的数据至关重要。 `INSERT INTO`是最常见的...

    如何在 MySQL 中创建数据库和表.zip

    在MySQL中创建数据库和表是数据库管理的基础操作,对于初学者和专业开发人员来说都是必不可少的技能。MySQL是一种关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据操作。以下是关于如何在MySQL...

    创建oracle数据库中表的主键和自增

    ### 创建Oracle数据库中表的主键和自增 在Oracle数据库中实现自增主键是一项常见但非常重要的功能。这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍...

    数据库中表、视图、存储过程、触发器的建立及其代码。

    在数据库管理中,表、视图、存储过程和触发器是四大关键元素,它们共同构建了数据管理和交互的基础架构。下面将详细介绍这四个概念以及如何用代码创建它们。 1. **表的建立**:表是数据库中最基本的数据结构,用于...

Global site tag (gtag.js) - Google Analytics