반응형


마땅한 erd 툴이 없을 경우에 아래처럼 엑셀에다가 명세를 작성하기도 합니다.

그리고 아래 형식을 그대로 복사해서 테이블 생성을 하고 싶기도 합니다.

그래서 한번 만들어 보았습니다.



<코드>

<textarea style="width:100%;height:200px;" id="a"></textarea>
 
<textarea style="width:100%;height:200px;" id="b"></textarea>
 
<script>
$(document).ready(function() {
  $(document).on("keyup""#a", generateMysqlCrateTable);
});
 
function generateMysqlCrateTable() {
  var source = $("#a").val();
  var lines = source.split("\n");
  var result = "";
  var pks = [];
  var tableComment = "";
  for (var i = 0; i < lines.length; i++) {
    switch (i) {
      case 1:
        continue;
        break;
      case 0:
        var words = lines[i].split("\t");
        result += "CREATE TABLE `" + words[1+ "` (";
        tableComment = words[0];
        break;
      default:
        var words = lines[i].split("\t");
        result += "  `" + words[1+ "` ";
        if (words[2!= '') {
          pks.push(words[1]);
        }
        result += " " + words[5];
        if (words[6!= '') {
          result += "(" + words[6+ ")";
        }
        if (words[4!= '') {
          result += " NOT NULL ";
        }
        if (words[3!= '') {
          result += " AUTO_INCREMENT ";
        }
 
        if (words[7!= '') {
          result += " DEFAULT " + words[7];
        }
        if (words[0!= '') {
          result += " COMMENT '" + words[0+ "'";
        }
        result += ",";
        break;
    }
    result += "\n";
  }
  if (pks.length > 0) {
    result += " PRIMARY KEY (";
    for (var i in pks) {
      result += "`" + pks[i] + "`,";
    }
    result = result.slice(0-1);
 
    result += "),\n";
  }
 
  result = result.slice(0-2+ "\n";
 
  result += ") ENGINE=InnoDB COMMENT='" + tableComment + "'; "
 
  $("#b").text(result);
  return;
}
 
<script>



반응형

'UTIL' 카테고리의 다른 글

javascript - snake to camel  (0) 2019.02.17
반응형

source code

<textarea id="a" rows="10"></textarea>
<input type="button" onclick="go()" value="==>">
<textarea id="b" rows="10"></textarea>
<script>
function go() {
  var val = document.getElementById("a").value;  
  document.getElementById("b").value = snakeToCamel(val);
}
function snakeToCamel(source) {
  var val = source;
    var result = source.match(/\w*(\w\_\w)+\w*/g);
  if (result != null) {
    for ( var i = 0; i < result.length; i++) {
      var word = result[i].toLowerCase();
      var arrUnderbar = word.match(/\_[a-zA-Z]/g);
      for ( var j = 0; j < arrUnderbar.length; j++) {
        word = word.replace(arrUnderbar[j], arrUnderbar[j]
            .toUpperCase().replace("_"""));
      }
      val = val.replace(result[i], word);
    }    
  }
  return val;
}
</script>


반응형

'UTIL' 카테고리의 다른 글

javascript util - excel to mysql create database query  (0) 2019.02.25

+ Recent posts