基于表的数据字典构造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 ...
随机推荐
- ArcGIS Server SOE开发之奇怪异常:
添加之后结果显示如下:fjsontokenezkBvir0Tj5q31UEst7pTFPwrwocmHklCajKeh-xXM91qWdBXDuQMmtGcaHaaXCJ 具体如下: 该SOE扩展在另 ...
- python 中使用 global 引发了莫名其妙的问题
哪里出问题了 python 中,使用 global 会将全局变量设为本函数可用.同时,在函数内部访问变量会先本地再全局. 在嵌套函数中,使用 global 会产生不合常理的行为. 上代码: In [9 ...
- 深入理解OAuth2.0协议
1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间.是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题.豪车一般配备两种钥匙:主钥匙和泊车钥匙.当你到酒店 ...
- "SQL Server does not handle comparison of NText, Text, Xml, or Image data types."
"SQL Server does not handle comparison of NText, Text, Xml, or Image data types." sql2000 ...
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
类型判断符号: C#:object a; if(a is int) { } 用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 inst ...
- 梦想还需有,因它必实现——发现最新版iOS漏洞,OverSky团队专访
梦想还需有,因它必实现——发现最新版iOS漏洞,OverSky团队专访 “成功了!”,随着一句欢呼声在阿里巴巴西溪园区传出,Cydia的图标出现在一部iOS9.3.4的iPhone6上并成功运行 ...
- ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器
一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...
- 大白话讲解Promise(一)
去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范.作为ES6中最重要的特性之一,我们有必要掌握并理解透彻.本文将由浅到深,讲解Promise的基本 ...
- upload4j安全、高效、易用的java http文件上传框架
简介 upload4j是一款轻量级http文件上传框架,使用简单,实现高效,功能专一,摆脱传统http文件上传框架的繁琐. upload4j的诞生并不是为了解决所有上传需求,而是专注于基础通用需求. ...
- Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...