mysql查询,多次插入,跨表更新

时间:2012-03-19 09:49:49

标签: mysql insert

我有两张桌子 faxhistory和temp

faxhistory是空的 临时填充

temp每列类型都是varchar

我需要创建一个插入temp中每一行的查询 但在此之前,将数据(varchar转换为int等)

2 个答案:

答案 0 :(得分:0)

您可以使用cast('column' as decimal(p,s))将varchar字段转换为数字。

尝试以下方法:

select cast(t.'column1' as decimal(p,s)), cast(t.'column2' as decimal(p,s)), t.'columnN' 
into f.'column1', f.'column2', f.'columnN' 
from faxhistory f, temp t

答案 1 :(得分:0)

在这里,有一个cookie:

CREATE TABLE `faxhistory` (  <your create statement> )  COLLATE 'utf8_general_ci';
INSERT INTO `faxhistory` ( `id`, `fax`, `date`, `time`, `status_code`, `status_text`, `duration`, `pages`, `loops`, `company_id`) SELECT `id`, `fax`, `date`, `time`, `status_code`, `status_text`, `duration`, `pages`, `loops`, `company_id` FROM `temp`;

以上代码仅在您的传真历史仍为空时!否则,请在任何列和任何集上使用以下内容。

ALTER TABLE `faxhistory` CHANGE COLUMN `id` `id` INT NOT NULL;