반응형
마땅한 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 |
---|