我每月都会从第三方公司获得一个SQL文件,然后我可以轻松加载到MySQL数据库中,然后关闭并运行。除了几乎每个VARCHAR
字段在所有80多个表中都有额外的尾随空格外。
示例:
DROP TABLE IF EXISTS `Aspiration`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `Aspiration` (
`AspirationID` int(10) NOT NULL,
`AspirationName` varchar(30) NOT NULL,
PRIMARY KEY (`AspirationID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `Aspiration`
--
LOCK TABLES `Aspiration` WRITE;
/*!40000 ALTER TABLE `Aspiration` DISABLE KEYS */;
INSERT INTO `Aspiration` VALUES (1,'- '),(5,'Naturally Aspirated '),(6,'Turbocharged '),(7,'Supercharged '),(9,'Turbo/Supercharged '),(10,'Turbo/Intercooled '),(12,'Turbo/Aftercooled ');
/*!40000 ALTER TABLE `Aspiration` ENABLE KEYS */;
我知道在导入SQL文件后以递归方式修剪字段的方法,但我知道必须有更好的方法。理想情况下,是否有可能在SQL转储上生成此设置的设置,我可以告诉它们更改?
如果没有,这实际上是他们的数据(这不会让我感到震惊),有没有简单的方法在数据加载上应用trim()
?
目前我的最佳解决方案是在Ruby中打开SQL文件并在文件中gsub(/ +\'/, "\'")
打开。