sql = "CREATE TABLE `raw_material` (
`id` bigint(20) unsigned NOT NULL DEFAULT '0',
`company_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '公司ID',
`raw_material_no` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '原料编号, 格式请查看通用配置文档',
`raw_material_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '原料类型,查看通用配置文档',
`chemical_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '化合物ID司',
`cas` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'CAS号',
`name` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '中文名称',
`name_en` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '英文名称',
`formula` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '分子式',
`molecular_weight` decimal(16,3) NOT NULL DEFAULT '0.000' COMMENT '分子量',
`appearance_traits` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '外观性状',
`storage_considerations` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '存储注意事项',
`ppe_category` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'PPE类别',
`packaging_considerations` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '分装注意事项',
`create_department_path` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建部门路径, 格式: id1-id2-id3 …idn- 目前至少支持20级部门',
`create_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '新建人ID',
`create_time` datetime NOT NULL DEFAULT '1972-01-01 00:00:00' COMMENT '新建时间',
`update_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '修改人ID',
`update_time` datetime NOT NULL DEFAULT '1972-01-01 00:00:00' COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_company_id_raw_material_no` (`company_id`,`raw_material_no`),
UNIQUE KEY `uk_company_id_chemical_id` (`company_id`,`chemical_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='原料表';"
line_arr = sql.split("\n")
puts line_arr[line_arr.length - 1].split( "COMMENT='").last.gsub("';","") + ":" + line_arr[0].gsub("CREATE TABLE `","").gsub("` (", "")
puts "字段\t类型\t索引\t默认\t描述\t其它"
primary_key = line_arr.find{|line| line.strip.start_with?("PRIMARY KEY")}.to_s.strip.gsub("PRIMARY KEY (`","").gsub("`),", "")
line_arr[1, line_arr.length-2].each do |line|
line = line.strip
if line.start_with? "`"
column_arr = line.split(" ")
column_name = column_arr[0].gsub("`", "")
signed_type = column_arr.include?("unsigned") ? "unsigned" : column_arr.include?("signed") ? "signed" : ""
column_type = column_arr[1]
if column_type.include?("int")
column_type = column_type.split("(").first
end
index_type = column_name == primary_key ? "主键索引" : ""
default_value = ""
if column_arr.include?("DEFAULT")
if column_type == "datetime"
default_value = column_arr[column_arr.index("DEFAULT") + 1] + " " + column_arr[column_arr.index("DEFAULT") + 2]
else
default_value = column_arr[column_arr.index("DEFAULT") + 1]
end
end
if default_value == "''"
default_value = "\"\""
else
default_value = default_value.gsub("'","")
end
comments = column_arr.include?("COMMENT") ? column_arr[column_arr.index("COMMENT") + 1].gsub("'", "").gsub(",","") : ""
puts "
elsif line.start_with? "UNIQUE KEY"
puts line.split( "(").last.gsub("`", "").gsub(")","").split(",").join(",") + " 唯一索引"
elsif line.start_with? "KEY"
puts line.split( "(").last.gsub("`", "").gsub(")","").split(",").join(",") + " 索引"
end
end