2017-07-07 11 views
1

古いテーブルを新しいテーブルに移行する必要があるという問題があります。古いテーブルをlaravelの新しいテーブルに移行する

旧テーブル(表を残す)

同上    USER_ID      日
             フィーバー   理由:このような古いテーブルデータの例      29/01/2013
             フィーバー        30/01/2013
             フィーバー        31/01/2013
             フィーバー        2013年1月2日

新しいテーブル(表を残す)

同上    USER_ID    理由   開始日   終了日
             フィーバー        29/01/2013       2013年1月2日


は、どのような方法がありますどこで新しいテーブルのように古いテーブルとストアを繰り返すことができますか?

29/01/2013 - 01/02/2013新しいテーブルが必要です。新しいテーブルには開始日と終了日が含まれます。29/01/2013は開始日、2011/01/02は終了日です。日付

新しいテーブルはすでに作成されています。私はちょうど古いテーブルのリストを繰り返し、開始日と終了日を持つ新しいテーブルに挿入したい。

+0

日付の列は開始日または終了日、またはその両方になるか、またはnoneになるか? –

+0

29/01/2013 - 01/02/2013 4行を作成する新しいテーブルが必要1行の開始日と終了日29/01/2013が開始日、01/02/2013が終了日 – SeedCom

答えて

0

あなたはStart DateDate列の名前を変更し、このような新しい列End Dateを追加し、

Schema::table('users', function($table) 
{ 
    $table->renameColumn('Date', 'Start Date'); 
    $table->dateTime('End Date'); 
}); 
+0

newテーブルはすでに作成されています。私はちょうど古いテーブルのリストを繰り返し、開始日と終了日を持つ新しいテーブルに挿入したい。 – SeedCom

+0

なぜ古いテーブルを変更しないのですか? –

+0

@KrisRoofe - 質問の一部は新しい列に入力することです! –

0
INSERT INTO new_table 
    (user_id, reason, start_date, end_date) 
    SELECT user_id, reason 
      MIN(Date), MAX(Date) 
     FROM old_table 
     GROUP BY user_id, reason; 

ことができ、私はそれがAUTO_INCREMENTであると仮定すると、IDを残しました。しかし、PRIMARY KEY(user_id, reason)を持っていると意味があります。

元の行が「連続」であるとは言わず、同じユーザーが複数の同じ文字列を持つことができないとは言いませんでしたか?reasonだから、おそらく私は本当の問題を解決していないでしょう。その場合は、あなたの質問をより正確に編集してください。

関連する問題