python三行代码实现数据库创表字段的大小写转换
来源:互联网 发布:java构造方法重载例题 编辑:程序博客网 时间:2024/06/05 21:54
需求
最近需要创建几个库,源sql是从oracle数据库导出的,需写入到mysql数据库内。oracle所有字段都是大写的,但是mysql所有字段都是小写的。为统一,mysql数据库的字段都需要是小写的。
例如:有这么一个表 his_price表,oralce导出sql是这样的:
CREATE TABLE `his_price` ( `EXCHANGE_TYPE` varchar(4) NOT NULL DEFAULT '', `STOCK_CODE` varchar(6) NOT NULL DEFAULT '', `INIT_DATE` decimal(10,0) NOT NULL DEFAULT '0', `MONEY_TYPE` varchar(3) NOT NULL DEFAULT '', `RATE_PRICE` decimal(9,8) NOT NULL DEFAULT '0.00000000', `BUSINESS_BALANCE` decimal(19,2) NOT NULL DEFAULT '0.00', `CLOSE_FLAG` char(1) NOT NULL DEFAULT '', `CLOSING_PRICE` decimal(18,3) NOT NULL DEFAULT '0.000', `WEIGHTAVG_PRICE` decimal(18,3) NOT NULL DEFAULT '0.000', `STKCODE_STATUS` char(1) NOT NULL DEFAULT '', `HIGH_PRICE` decimal(18,3) NOT NULL DEFAULT '0.000', `LOW_PRICE` decimal(18,3) NOT NULL DEFAULT '0.000', `ASSET_PRICE` decimal(16,4) NOT NULL DEFAULT '0.0000', `LAST_PRICE` decimal(16,4) NOT NULL DEFAULT '0.0000') ENGINE=InnoDB DEFAULT CHARSET=utf8;
其实这个表字段并不多,手工改也很快,最多看着敲一遍。但是一共需要导入8个表,其中有1个表有100多个字段,这要完全手工改,显然不是最好的方案。
实现
想了一会,可以用python写一个语句,用lower()方法将所有大写字母转换成小写语句:
>>>a = """CREATE TABLE `asset` ( `INIT_DATE` decimal(10,0) NOT NULL DEFAULT '0', `FUND_ACCOUNT` varchar(18) NOT NULL DEFAULT '', `MONEY_TYPE` varchar(3) NOT NULL DEFAULT '', `FUND_ASSET` decimal(19,2) NOT NULL DEFAULT '0.00', `SECU_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `OPFUND_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `TOTAL_ASSET` decimal(19,2) NOT NULL DEFAULT '0.00', `PROD_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `OPT_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `OFCASH_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `PFUND_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `HKFUND_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00', `SECUM_MARKET_VALUE` decimal(19,2) NOT NULL DEFAULT '0.00') ENGINE=InnoDB DEFAULT CHARSET=utf8;""">>>b = a.lower()>>>b"create table `asset` (\n `init_date` decimal(10,0) not null default '0',\n `fund_account` varchar(18) not null default '',\n `money_type` varchar(3) not null default '',\n `fund_asset` decimal(19,2) not null default '0.00',\n `secu_market_value` decimal(19,2) not null default '0.00',\n `opfund_market_value` decimal(19,2) not null default '0.00',\n `total_asset` decimal(19,2) not null default '0.00',\n `prod_market_value` decimal(19,2) not null default '0.00',\n `opt_market_value` decimal(19,2) not null default '0.00',\n `ofcash_market_value` decimal(19,2) not null default '0.00',\n `pfund_market_value` decimal(19,2) not null default '0.00',\n `hkfund_market_value` decimal(19,2) not null default '0.00',\n `secum_market_value` decimal(19,2) not null default '0.00'\n) engine=innodb default charset=utf8;\n"
输出b, 已经都转化成小写字母了。但是放在sql里面执行,显然是不行的。因为里面有很多 \n 符号没处理。
想了一下,可以试试print() 方法
>>>print(b)create table `asset` ( `init_date` decimal(10,0) not null default '0', `fund_account` varchar(18) not null default '', `money_type` varchar(3) not null default '', `fund_asset` decimal(19,2) not null default '0.00', `secu_market_value` decimal(19,2) not null default '0.00', `opfund_market_value` decimal(19,2) not null default '0.00', `total_asset` decimal(19,2) not null default '0.00', `prod_market_value` decimal(19,2) not null default '0.00', `opt_market_value` decimal(19,2) not null default '0.00', `ofcash_market_value` decimal(19,2) not null default '0.00', `pfund_market_value` decimal(19,2) not null default '0.00', `hkfund_market_value` decimal(19,2) not null default '0.00', `secum_market_value` decimal(19,2) not null default '0.00') engine=innodb default charset=utf8;
得到很满意的结果,复制后,直接执行语句创表。八个表,一分钟搞定。
阅读全文
0 0
- python三行代码实现数据库创表字段的大小写转换
- 数据库的表字段自动转换为java实体类
- DB2 表字段大小写问题
- MSSQL 表字段区分大小写
- 代码自动生成(-)数据库表字段转换成java bean
- python 三行代码实现快速排序
- 数据库表字段介绍
- 修改数据库表字段
- 修改数据库表字段
- 数据库表字段规范
- Python 大小写的转换
- 续:【基于JFinal建立的Db+Record实现的数据库表字段加密】-- 实现事务控制
- 续:【基于JFinal建立的Db+Record实现的数据库表字段加密】-- 在实践中的使用
- 基于JFinal建立的Db+Record实现的数据库表字段加密
- 如何实现一个与数据库表字段松耦合的j2ee应用
- 如何实现一个与数据库表字段松耦合的j2ee应用
- 如何实现一个与数据库表字段松耦合的j2ee应用
- 如何实现一个与数据库表字段松耦合的j2ee应用
- 压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明
- Delphi对ini文件的操作
- 申请阿里云免费https
- C#在httpclient下访问某第三方短信验证码平台API
- Python环境配置问题及解决办法
- python三行代码实现数据库创表字段的大小写转换
- 日常问题总结(2)
- 软件开发设计模式(三)—简单工厂模式
- vi 永久保存命令 vimrc
- zookeeper分布式协调服务
- UVA 1610 Party Games
- Bootstrap的3种form
- Hbase性能优化笔记
- ios 国际化