MYSQL 复制一张表到另一张表并转换列

标签 mysql sql etl

我正在将数据从一个数据库表复制到另一个数据库表。这本质上是将数据从我们的旧格式复制到我们的新格式。因此,除了简单地逐值复制列外,我还需要在复制语句中进行一些转换。

例如,这是我必须执行的复制...

INSERT INTO new_database.table1 (id, product, is_default) 
SELECT id, product, is_default FROM old_database.table1

ID 和产品工作正常。但是,在此示例中,old_database 将“is_default”存储为 VARCHAR(1),即“Y”或“N”。 new_database 将“is_default”存储为 BOOLEAN

如何在我已经使用的 INSERT SELECT 语句中进行格式之间的转换?

最佳答案

尝试如下:

INSERT INTO new_database.table1 (id, product, is_default) 
SELECT id, product, IF(is_default='Y',1,0) as isdefault FROM old_database.table1

关于MYSQL 复制一张表到另一张表并转换列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495883/

相关文章:

java - 错误 1126 (HY000) : Can't open shared library 'lib_mysqludf_sys.dll' (errno: 126) The specified module could not be found. )

sql - 将日期截断为仅小时/分钟

php - 使 PDO 连接变量可在整个站点访问

Java与MySQL——涉及外键时如何设计类

mysql - 使用 Mysql Ruby 设置连接超时

sql - 改进 "completed"加入查询 postgresql

mysql 根据许多列值选择行

csv - 包含空格的 Scriptella 和 CSV 列标题

apache-kafka - 德鲁伊.io : update/override existing data via streams from Kafka (Druid Kafka indexing service)

sql-server - SSIS 错误 : 0xC002F21 0"Query is too complex.". 可能的失败原因 : Problems with the query, "ResultSet"属性设置不正确