2

これは、人々が通常やりたいこととは逆のように思えるかもしれませんが、mysql テーブルで行を複製したいと考えています。

たとえば、project_id を持つ 1 つの行と file_name を持つ 1 つの行を持つテーブルがあります。各プロジェクトには、非常に多くのファイルが関連付けられています。あるプロジェクトに存在するすべての行を別のプロジェクトに複製したいと考えています。これを行うPythonスクリプトを書くことはできますが、mysql内から行う方法があると思います。

何か案は?ありがとう。

たとえば、次のようなプロジェクトがあるとします...

file_id, file_name, project_id
-------, ---------, ----------
      1, file1.png,          1
      2, file2.png,          1
      3, file3.png,          1

...そして最大約100行。

このようなプロジェクトを取得するには、何を入力すればよいですか...

file_id, file_name, project_id
-------, ---------, ----------
      1, file1.png,          1
      2, file2.png,          1
      3, file3.png,          1
      4, file1.png,          2
      5, file2.png,          2
      6, file3.png,          2
4

4 に答える 4

2

MySQL では、insert ステートメントによって新しい行に挿入される値が select ステートメントによって選択されるように、insert ステートメントを select ステートメントと組み合わせることができます。詳細については、 INSERT..SELECTを参照してください。

于 2013-07-27T00:31:00.143 に答える
2

SELECTからINSERTする必要があるようです。これを行うための基本的な考え方は、以下のリンクから見つけることができます。

mysql -> tbl に挿入 (別のテーブルから選択) といくつかのデフォルト値

補足: 行を完全に複製すると、データベース キーに問題が発生する可能性があります。そうしないと、データベースに設計上の問題があります。

于 2013-07-27T00:33:19.583 に答える