3

これは、最初は少し混乱するかもしれません。しかし、データを含むテーブルがあり、このテーブルのすべての行の複製を作成したいと考えています。だから、もしそうなら:

SELECT *
FROM the_table

このテーブルのすべてのデータを一覧表示します。ここで、返されたすべての結果のコピーを作成したいと思いますが、1 つの列 (日付) のデータを変更したい場合を除きます。これにより、新しい行が一意になります。

これを行う理由は、テスト目的で統計を作成するため、このテーブルにさらにデータが必要だからです。だから、私がこれを持っている場合:

**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

ID 列 (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

に変更できる 1 つの列を変更するには

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 に答える
2
INSERT INTO TABLEDUPLICATES
SELECT * FROM the_table


SELECT * FROM TABLEDUPLICATES UNION 
SELECT * FROM the_table 
于 2012-04-19T08:31:57.103 に答える