3

起初这听起来有点令人困惑。但是我有一个包含数据的表,我想创建该表中所有行的副本。所以,如果我这样做:

SELECT *
FROM the_table

它列出了该表中的所有数据。现在,我想创建所有返回结果的副本,除了我想更改一列(日期)的数据。这将使新行独一无二。

我想这样做的原因是因为我想在这个表中得到更多的数据,因为我用它来构建统计数据用于测试目的。所以,如果我有这个:

**Column1   Column2   Column3**
abc       aaa         bbb
abcd      aaaa        bbbb
abcde     aaaaa       bbbbb

The table will now contain:
**Column1   Column2   Column3**
abc       aaa         bbb
abcd      aaaa        bbbb
abcde     aaaaa       bbbbb
abc       aaa         bbb_new
abcd      aaaa        bbbb_new
abcde     aaaaa       bbbbb_new
4

5 回答 5

6
insert into your_table
   select col1, col2, concat(col3, '_new') from your_table
于 2012-04-19T08:31:58.633 回答
3

考虑在您的表上进行笛卡尔联接。这将快速为您提供更多数据:)

于 2012-04-19T08:36:14.143 回答
2
INSERT INTO TABLEDUPLICATES
SELECT * FROM the_table


SELECT * FROM TABLEDUPLICATES UNION 
SELECT * FROM the_table 
于 2012-04-19T08:31:57.103 回答
2

假设有一个标识列 (ID),您可能会像这样生成日期 (A_Date):

insert into the_table (Column1, Column2, A_Date)
select Column1, Column2, A_Date + (rand(ID) - 0.5) * 100
  from the_table
于 2012-04-19T08:46:47.530 回答
2

要复制行(所有列),您只需使用

insert into tblname
select * from tblname

将一列可以修改为

insert into tblname
select column1, column2, 'fixedvalueforcolumn3' from tblname

但是您需要第 3 列的唯一值,因此您必须将 'fixedvalueforcolumn3' 更改为将为第 3 列生成一些随机(唯一)值(在您的情况下为日期)的函数

insert into tblname
    select column1, column2, generateRandomValue() from tblname

希望对你有帮助

于 2012-04-19T08:54:35.130 回答