在MySQL中,我可以复制一行插入同一张表中吗?

2023-12-06

insert into table select * from table where primarykey=1

我只想复制一行以插入到同一个表中(即,我想复制表中的现有行),但我想这样做而不必列出“select”之后的所有列,因为该表有太多的列。

但是当我这样做时,我收到错误:

键 1 的重复条目“xxx”

我可以通过创建另一个具有相同列的表作为我要复制的记录的临时容器来处理此问题:

create table oldtable_temp like oldtable;
insert into oldtable_temp select * from oldtable where key=1;
update oldtable_tem set key=2;
insert into oldtable select * from oldtable where key=2;

有没有更简单的方法来解决这个问题?


我使用了 Leonard Challis 的技术,但做了一些改变:

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

作为临时表,永远不应该有超过一条记录,因此您不必担心主键。将其设置为 null 允许 MySQL 自行选择值,因此不存在创建重复项的风险。

如果您想非常确定只插入一行,可以将 LIMIT 1 添加到 INSERT INTO 行的末尾。

请注意,我还将主键值(在本例中为 1)附加到临时表名称中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在MySQL中,我可以复制一行插入同一张表中吗? 的相关文章

随机推荐

  • mySQL - 以任一顺序选择 2 列的不同组合

    我有一个表 其中包含两个用户之间的消息 我需要找到用户的所有不同组合 无论他们是发送者还是接收者 ID sender receiver message 1 bob bill message 1 2 bill bob message 2 3
  • 从 CVS 迁移到 Mercurial:分离项目

    我们有一个具有多年开发历史的CVS存储库 一个项目 CVS文件夹 下有3个项目 这些应该是 Mercurial 存储库中的不同存储库 它们采用以下方案 Project 子项目1 子项目2 子项目3 有没有办法在 cvs2hg 过程中自动执行
  • SQLCMD 命令,如何将输出保存到日志文件中

    以下问题帮助我解决了执行文件中多个 SQL 脚本的问题 运行目录中的所有 SQL 文件但是 我不知道如何将输出重定向到单独的日志文件中 有人建议使用以下脚本 但由于我不理解它 所以它不起作用 我也找不到错误 for f in sql do
  • 在 MySQL 中处理事件

    我有一个存储过程 它基本上从一个表中选择数据并插入到另一个表中 基本上我是手动进行数据归档 现在 我想写一个事件 就像讨论的那样here 然而 在阅读该文章并在线研究后 我开始知道不可能在存储过程中创建事件 有没有办法在 MySQLWork
  • Tensorflow.js inputShape 与模型输入不匹配

    这似乎很基本 但我无法弄清楚 所以我有样本 数据 输入 它是一个由 10 个整数组成的数组 而输出 标签只是一个整数数组 让我解释一下 因为我的数据可能结构不正确 基于 10 个整数的输入 我告诉模型结果是标签 输出中的 1 个整数 最重要
  • 原始类型指针之间的转换

    以下是明确定义的 char charPtr new char 42 int intPtr int charPtr charPtr intPtr int charPtr The intPtr未正确对齐 至少在两种情况之一 仅仅把它放在那里就违
  • 通过实例调用静态方法的替代方法

    JOptionPane jop new JOptionPane jop showMessageDialog This is never done 有人告诉我这样做的品味很差 我的意思是它有效 但显然 专业人士 不会这样做 因为 showMe
  • SQLiteFunction简单不工作

    我尝试从我的 C 和 ADO NET 代码中使用 SQLiteFunction 谁能告诉我为什么我会遇到这个问题 System Data SQLite dll 中发生类型为 System Data SQLite SQLiteExceptio
  • 如何使用 SMO 连接到 Sqlserver2008 必须采取任何解决方法吗?

    我写这个是为了在本地计算机上查找 sql server 实例 using System using System Data using Microsoft SqlServer Management Smo namespace Applica
  • 插入“赋值运算符表达式”以完成表达式

    我正在使用 Java 但出现错误 插入 赋值运算符表达式 以完成表达式 这个错误是什么意思 是否有所有 java 错误消息及其含义的列表 thanks 根据这一页你正在做这个 编写不带赋值运算符的赋值语句 max Error missing
  • 我应该在我自己的代码之后还是之前调用[super superMethod]?

    抱歉我的英语不好 问题很简单 但我很难表达它并在谷歌中找到它 我应该 在所有类似的情况下 当我重写 super 方法时 不仅仅是这个方法 使用 void viewDidLoad my code super viewDidLoad or vo
  • Apache Flink Streaming 窗口 WordCount

    我有以下代码来计算 socketTextStream 中的单词数 需要累积字数和时间窗口字数 该程序存在一个问题 即 cumulateCounts 始终与窗口计数相同 为什么会出现这个问题 基于窗口计数计算累积计数的正确方法是什么 Stre
  • scrapy中使用爬虫初始化管道对象

    基于Scrapy 与二级网站交互时的程序组织 我有 class MyPipeline object def init self crawler self crawler crawler 我试图更好地理解代码 尤其是上面列出的开头的行 为什么
  • 类中的 Powershell winform 事件处理程序导致范围问题

    我正在尝试创建 GUI 并在 powershell 中使用类 我对这两件事都很陌生 通常在较小程度上对 powershell 也很陌生 所以请耐心等待 我遇到的问题是我无法进行任何对表单进行修改的控件 这是因为当向按钮添加处理程序时 它会进
  • 如何在 PHP 中将 unicode 符号转换为 ascii 安全等价物

    用户可能输入类似 的字符 如何在 php 中删除该标记并变成 A E u Thanks 您可以使用 iconv UTF 8 ASCII TRANSLIT 您可以创建一个函数来保存要交换的字符数组并传递字符串 然后将 更改为这种方式 如果 i
  • SQL Server过程执行计划的奇怪问题

    我想知道你们是否可以帮助我解决我最近在 SQL Server 上遇到的一个奇怪问题 我有一个存储过程 让我们调用SPold 它相当大 需要进行大量计算 不可能在应用程序中执行此操作 因为大约 6000 个用户的信息需要一次性返回 我根据姓氏
  • Excel 帮助:动态范围 + 数据验证

    我遇到了一些流行的 Excel 问题 动态范围 数据验证下拉菜单和自动填充问题 假设我有两张纸 在一张纸上我有下拉菜单可以从另一张纸中进行选择 当我使用以下方法定义单元格和范围时 这不是问题 OFFSET A 19 COUNTA 0528
  • Websocket - 客户端未收到数据

    我正在编写一些基于 websockets RFC 6455 的应用程序 不幸的是 客户端 在 Chrome 18 上测试 似乎没有收到数据 但服务器说它正在发送 Chrome 没有说什么 以下是主要的服务器方法 private functi
  • Java中将数字的所有数字相加并分别显示数字

    我经常使用这个网站 但我从未真正写过任何东西 今天 我偶然发现了一个我似乎找不到解决方案的问题 问题是 我有一个int variable具有未知数量的数字 要求我将所有这些数字相加 然后将其打印 显示为消息 并将所有这些数字分开 例如 用户
  • 在MySQL中,我可以复制一行插入同一张表中吗?

    insert into table select from table where primarykey 1 我只想复制一行以插入到同一个表中 即 我想复制表中的现有行 但我想这样做而不必列出 select 之后的所有列 因为该表有太多的列