SOURCE

console 命令行工具 X clear

                    
>
console
var data = d3.csv.parse( d3.select("pre#data").text() );
/* console.log(data); */
var pk = {"字段": '!!!无主键!!!'};

var handleDefaultString = (defaultValue, typeName) => {
  if (defaultValue === "AUTO_INCREMENT") {
    return defaultValue;
  }
  
  var mappingDefaultValue = ()=> {
    if (defaultValue === "零值") {
      if (typeName === "DATETIME") {
        return "1972-01-01 00:00:00";
      }
      if (typeName.startsWith("VARCHAR")) {
        return "";
      }
      return "0";
    }
    
    return defaultValue;
  }
  
  return `DEFAULT '${mappingDefaultValue()}'`;
}

var handleTypeName = (typeName) => {
  typeName = typeName.toUpperCase();
  if (typeName.indexOf('UNSIGNED') > -1) {
    var a = typeName.split(' ').filter(e => e !== "")
    return `${a[1]} ${a[0]}`;
  }
  return typeName;
}

var eachlines = data.map(row => {
 var typeName = handleTypeName(row["类型"])
 var defaultString = handleDefaultString(row["默认"].trim(), typeName);
 var commentValue = row["描述"];
 if (row["其它"]) {
   commentValue += ', '
   commentValue += row["其它"];
 }
 if (row["索引"] && row["索引"].includes("主键")) {
   pk = row;
 }
 
 return `  \`${row["字段"]}\` ${typeName} NOT NULL ${defaultString} COMMENT '${commentValue}'`
})

var sql = 
`DROP TABLE IF EXISTS \`XXXXXX\`;
CREATE TABLE \`XXXXXX\` (
${eachlines.join(",\n")},
  PRIMARY KEY (\`${pk["字段"]}\`)
) COMMENT='YYYYYYYYY';`;
var output = `
-- -----------------------------------------
-- 请替换表名(XXXXXX),表备注(YYYYYYYYY)
-- 如果有其他的索引,请自行手动添加
-- -----------------------------------------

${sql}
`;

/* console.log(sql); */
d3.select("pre#data").text(output);
<pre id="data">
"字段","类型","索引","默认","描述","其它"
id,"unsigned bigint","主键",AUTO_INCREMENT,"",""
recharge_no,"varchar(32)","","零值","供应商预存款充值记录编号","格式请查看通用配置文档"
deposit_id,"unsigned bigint","","零值","供应商预存款ID",""
amount,"unsigned int","","零值","充值金额",""
status,"unsigned tinyint","","零值","充值状态","值请查看通用配置文档"
account_type,"unsigned tinyint","","零值","账户类型","值请查看通用配置文档"
receive_account_name,"varchar (255)","","零值","收款账号名称","快照"
receive_account,"varchar(32)","","零值","收款银行账号","快照"
pay_account_name,"varchar (255)","","零值","付款账号名称","快照"
pay_account,"varchar(32)","","零值","付款银行账号","快照"
account,"varchar(32)","","零值","银行账户",""
account_name,"varchar(32)","","零值","银行账户名称",""
create_id,"unsigned bigint","","零值","新建员工ID",""
create_time,datetime,"","1972-01-01 00:00:00","新建时间",""
update_id,"unsigned bigint","","零值","修改员工ID",""
update_time,datetime,"","1972-01-01 00:00:00","修改时间",""
</pre>

本项目引用的自定义外部资源