これの例を探していましたが、どうやら私は答えを見つけるのに十分な用語をよく知りません:
PHP / MySqlを利用して、そのデータの一部を編集しながら、テーブル内のレコードを複製しようとしています。
次のような既存のテーブル「情報」があります。
1 ID - Int11 AutoIncrement
2 elementID - Int11 Unique
3 text - text utf8
4 loopID - Int11
5 created - datetime
6 modified - datetime
'elementID'フィールドと'loopID'フィールドの両方に、最後の4桁が埋め込まれた識別子(この場合はシステムの'ページ')を表す値が含まれています。したがって、たとえば:
ページ「9000」elementIDは次のように記録されます
100019000
100029000
100039000
およびページ「9000」loopIDは次のように記録されます
1009000
1019000
1029000
ページ「9001」elementIDのレコードは次のように記録されます
100019001
100029001
100039001
およびページ「9001」loopIDのレコードは次のように記録されます
1009001
1019001
1029001
うまくいけば、あなたはアイデアを得るでしょう。
私がやりたいのは、新しいページが作成されたとき(この場合は9002)、エンドユーザーは前のページのすべてのレコードデータを複製することを選択できます(この場合は9001を複製したい)。
これに飛び込む前に、私は本当に最良の方法が何であるかを理解する必要があります。
最初は、9001に一致するすべてのレコードを配列にクエリし、elementIDとループの最後の4桁の9001をすべて9002に置き換え、「作成」と「変更」の日付を今日に置き換えてから、次のように記述したいと考えていました。結果の配列は新しいエントリとしてデータベースに戻されますか?もしそうなら、どの時点で、クエリ中、またはデータベースへの書き戻し中に置換を行う必要がありますか?
それから私がさらに考え始めたので、これが代わりにこれと同様の方法で行われるべきかどうか疑問に思うようになりました:
INSERT INTO information...
SELECT REPLACE...
FROM information
[WHERE ..]
これには十分な要素が含まれているので、私のようなデータベースアマチュアにとっては簡単に生成できません...誰かがこのプロセスの適切な例を教えてくれれば、それは大きな助けになります。