在MySQL數據庫中,有時候需要將一張舊表的數據遷移到新的表中,這個過程是非常常見的。但是,在新表中,我們可能需要保留舊表中的時間信息,包括創建時間和更新時間。下面就來介紹一下如何將舊表中的時間信息導入到新表中。
首先,我們需要先創建新表,可以使用以下SQL語句:
CREATE TABLE `new_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
可以看到,新表中我們額外添加了created_at和updated_at兩個字段,這兩個字段將會保存舊表中的時間信息。
接下來,我們需要將舊表中的數據導入到新表中,使用以下SQL語句:
INSERT INTO new_table (name,created_at,updated_at) SELECT name,created_at,updated_at FROM old_table;
這條SQL語句將會將舊表中的數據插入到新表中,并且保留了created_at和updated_at字段的值。
最后,需要注意的是,如果舊表中的時間信息格式不同于新表中的時間格式,那么就需要進行格式轉換。例如舊表中的時間格式是YYYY-MM-DD,而新表中的時間格式是YYYY-MM-DD HH:MM:SS,此時就需要使用STR_TO_DATE函數進行轉換,可以參考以下SQL語句:
INSERT INTO new_table (name,created_at,updated_at) SELECT name,STR_TO_DATE(created_at,'%Y-%m-%d'),STR_TO_DATE(updated_at,'%Y-%m-%d') FROM old_table;
使用以上方法,我們就可以將舊表中的時間信息成功導入到新表中了。
上一篇mysql新款
下一篇mysql方式鏈接數據庫