我有一个问题,需要将旧表迁移到新表。下面的旧表数据示例如下:
旧桌子(离开桌)
Id/T1581-1997发发User_id的原因
1
2
3
4
新表(休假表)
Id/T1581-1997发价User_id的原因
1-1
有什么方法可以迭代旧表并像新表一样存储吗?
29/01/2013 - 01/02/2013产生4行。新表需要1行开始日期和结束日期,其中29/01/2013为开始日期,01/02/2013为结束日期
我已经创建了新的表。我只想迭代旧表的列表,并将其插入到具有开始日期和结束日期的新表中。
发布于 2017-07-07 01:55:36
您可以将Date列重命名为Start Date,并添加新列End Date,如下所示,
Schema::table('users', function($table)
{
$table->renameColumn('Date', 'Start Date');
$table->dateTime('End Date');
});发布于 2017-07-10 04:33:57
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;我忽略了id,假设它是AUTO_INCREMENT。但拥有PRIMARY KEY(user_id, reason)可能更有意义。
您没有说原始行是‘连续的’,也没有说同一个用户可以或不能拥有同一个reason的多个字符串。所以,也许我还没有解决真正的问题。在这种情况下,编辑你的问题,使之更加准确。
https://stackoverflow.com/questions/44961166
复制相似问题