当前位置: 首页 > 面试题库 >

INSERT INTO…SELECT为所有MySQL列

松茂实
2023-03-14
问题内容

我正在尝试从以下位置移出旧数据:

this_table >> this_table_archive

复制所有列。我已经尝试过了,但是没有用:

INSERT INTO this_table_archive (*) VALUES (SELECT * FROM this_table WHERE entry_date < '2011-01-01 00:00:00');

注意:这些表是相同的,并已id设置为主键。


问题答案:

手册中描述了正确的语法。尝试这个:

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';

如果id列是一个自动递增的列,并且您在两个表中都已经有一些数据,那么在某些情况下,您可能希望从列列表中省略该id并生成新的id,以避免插入原来的ID表。如果您的目标表为空,那么这将不是问题。



 类似资料:
  • 问题内容: 尝试在运行时向我的Web应用程序中的所有MySQL Select查询添加注释。 例如,代码中的原始查询如下所示: 所有这些都需要 在运行时 修改为: 该应用程序在Hibernate 4.2.1上运行。我能想到的唯一解决方案是扩展并在中添加。 对于为实现此目的而修改的方法有些困惑。希望任何朝着正确方向的指针。 可以重写in方法来做到这一点吗? 编辑1:自定义MySQL方言中的transf

  • 问题内容: 我有以下2个表t1,t2 我在跑步 结果: 在运行脚本时: 结果: select 应该返回所有列,所以,为什么当我使用select 时却没有得到2行? 注意:我正在使用Mysql 问题答案: 正如文档所说: 自然连接和使用USING的连接(包括外部连接变体)将根据SQL:2003标准进行处理: NATURAL连接的冗余列不会出现。考虑以下这组语句: 列j在USING子句中命名,并且在输

  • 问题内容: 我在尝试为我的应用程序实现一些计数器时遇到了这种奇怪的行为。基本上,我做了一个这样的计数器表: 然后,我也想计算一些特定类型的消息,因此在Go应用程序中,我更改了表以添加以前没有的列。 我的应用程序正在增长,并且我开始有30列以上(不应超过50列),并且当我想检索所有这些计数器时,结果中缺少一些列。 这给我返回了30列超过34列的信息。虽然,当我在CQLSH上执行请求时: 我得到适当的

  • 问题内容: 我有此查询在MySQL中正常工作。这里有更多背景信息。 我尝试在PostgreSQL中运行它,但此错误消息失败。 PGError:错误:列“ c.name”必须出现在GROUP BY子句中或在聚合函数中使用 我不确定这是什么意思,所以我尝试在group by子句中将“ c.id”更改为“ c.name”(在MySQL中两者都是相同的,假定项的名称是唯一的)。 但是,这又产生了另一个类似

  • 本文向大家介绍MySQL SELECT WHERE,包括了MySQL SELECT WHERE的使用技巧和注意事项,需要的朋友参考一下 示例 询问 结果 使用WHERE子句中的嵌套SELECT查询 该WHERE子句可以包含任何有效的SELECT语句以编写更复杂的查询。这是一个“嵌套”查询 询问 嵌套查询通常用于从查询中返回单个原子值以进行比较。 选择所有没有电子邮件地址的用户名 免责声明:比较整个

  • 本文向大家介绍MySQL SELECT...LIKE (%),包括了MySQL SELECT...LIKE (%)的使用技巧和注意事项,需要的朋友参考一下 示例 任意位置的“ adm”: 以“ adm”开头: 以“ adm”结尾: 正如%一个字符LIKE条款任意数目的字符匹配,_匹配字符一个字符。例如, 性能说明如果上有一个索引username,则 LIKE 'adm' 执行与`='adm'相同的