基于表的数据字典构造MySQL建表语句
表的数据字典格式如下:
如果手动写MySQL建表语句,确认麻烦,还不能保证书写一定正确。
写了个Perl脚本,可快速构造MySQL脚本语句。
脚本如下:
#!/usr/bin/perl
use strict;
my $line;
while(<>){
s/\r\n//;
if(/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/){
$line=$.' '.$.'('.$.') COMMENT \''.$.'\',';
}elsif(/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+/){
$line=$.' '.$.' COMMENT \''.$.'\',';
}
print "$line\n";
}
首先将表的内容copy到文本文件中,然后执行上述脚本
[root@centos-minion1 ~]# cat .txt
序号 字段名 字段描述 数据类型 长度 是否为空 是否主键
OPRSEQ 操作流水 VARCHAR NOT NULL 是
NODEID 节点ID DECIMAL NOT NULL 是
CREATEDATE 开始时间 DATETIME NOT NULL 是
FINISHDATE 结束时间 DATETIME
STATUS1 状态 CHAR NULL
OPERTYPE 操作类型 DECIMAL NULL
STATUS2 实例状态 CHAR NULL
RESULTCODE 结果编码 VARCHAR NULL
RESULTMSG 结果信息 VARCHAR NULL [root@centos-minion1 ~]# perl .pl .txt
字段名 数据类型(长度) COMMENT '字段描述',
OPRSEQ VARCHAR() COMMENT '操作流水',
NODEID DECIMAL() COMMENT '节点ID',
CREATEDATE DATETIME(NOT) COMMENT '开始时间',
FINISHDATE DATETIME COMMENT '结束时间',
STATUS1 CHAR() COMMENT '状态',
OPERTYPE DECIMAL() COMMENT '操作类型',
STATUS2 CHAR() COMMENT '实例状态',
RESULTCODE VARCHAR() COMMENT '结果编码',
RESULTMSG VARCHAR() COMMENT '结果信息',
RESULTMSG VARCHAR() COMMENT '结果信息',
生成的结果如上所述~
基于表的数据字典构造MySQL建表语句的更多相关文章
- mysql建表出现Timestamp错误
mysql建表时如果有两个或以上的字段为Timestamp,那么可能会出现如下错误: Incorrect table definition; there can be only one TIMESTA ...
- MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual.......
使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 建表语句: DROP DATABASE IF EXISTS javawe ...
- MySQL 建表语句 create table 中的列定义
MySQL 建表语句 create table 中的列定义: column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value ...
- 三种常用的MySQL建表语句
MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1( ...
- 通过python给mysql建表
一.python连接mysql from sqlalchemy import create_engine # 数据库数据 HOSTNAME = '127.0.0.1' # linux本地 PORT = ...
- 【转载】mysql建表date类型不能设置默认值
如题,mysql建表date类型的不能设置一个默认值,比如我这样: CREATE TABLE `new_table` ( `biryhday` datetime NULL DEFAULT '1996- ...
- 关于MySQL建表对DML的影响【转】
本文来自这里 今天一位同学问到线上曾经碰到过连续建表,导致阻塞普通的insert.update等.不过也没有保留现场.因此有疑问为什么建表会影响DML? 分析 首先这个现象不是在所有 ...
- Mysql建表通用写法
Mysql建表通用写法 CREATE TABLE IF NOT EXISTS stu( id ) PRIMARY KEY AUTO_INCREMENT,//主键 自增 stuname ) NOT NU ...
- 【记录】Mysql 建表注意事项
博主最近打算搭建商城,由于之前对建表只有很浅显的理解,没有太过深入了解,建表过程中遇到一些问题,现记录如下, 如有问题请各位留言指正,感激不尽: 建表时设置如何设置联合主键?如下标红处: CREATE ...
随机推荐
- Myeclipse 不能保存汉字
window-->首选项-->content type-->Text-->Default encoding改为UTF-8,点击update
- 关于MVC的开源商城 Nop之闲聊
nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基 ...
- 日常工作bug总结
1.在使用jQuery的text()与val()使用时,如果按钮是<button></button>的形式使用text()写入时,在IE8下会出现延迟,即我在写定时器5秒倒计时 ...
- cookies,sessionStorage 和 localStorage区别
cookies,sessionStorage 和 localStorage 的区别 cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密). cook ...
- php-(/usr/local/php)安装编译选项
./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ ...
- ArcGIS10的附件功能
转自 积思园 http://blog.csdn.net/linghe301/article/details/6386176 老是忘记怎么使用这个ArcGIS10的附件功能,这次就做个记录吧. 在项目应 ...
- 微信中一些常用的js事件积累
1.网页图片集左右滑动查看图片,如下样例: jjs效果 var pictures = []; angular.forEach(pitctures,function(k,i){ pict ...
- SDOI 2016 排列计数
题目大意:一个数列A,n个元素,其中m个元素不动,其他元素均不在相应位置,问有多少种排列 保证m个元素不动,组合数学直接计算,剩余元素错位排列一下即可 #include<bits/stdc++. ...
- Android 开发快速导引:Android程序框架【草】
概述 学习一项新技术之前要先了解这个技术的整体框架,这里先简单说一下 Android 的程序结构. Android App 有四个顶层的类:Activity.Service.ContentProvid ...
- .NET Framework 4.5.2 静默安装参数
Microsoft .NET Framework 4.5.2 是针对 Microsoft .NET Framework 4.Microsoft .NET Framework 4.5 和 Microso ...