Skip to content

Instantly share code, notes, and snippets.

@pinzolo
Last active July 28, 2016 02:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pinzolo/1fa93e8daa967eabd6643b5592744a33 to your computer and use it in GitHub Desktop.
Save pinzolo/1fa93e8daa967eabd6643b5592744a33 to your computer and use it in GitHub Desktop.
serialのシーケンスがなが~い名前になる場合の命名ロジック(pg_get_serial_sequenceの中身を想像)
var MAX_SEQ_NAME_LENGTH = 63;
var PARTS_LENGTH_THRESHOLD = 29;
function getSerialSequence(tableName, columnName) {
t = tableName;
c = columnName;
if (tableName.length + columnName.length + 5 > MAX_SEQ_NAME_LENGTH) {
if (tableName.length > PARTS_LENGTH_THRESHOLD) {
if (columnName.length > PARTS_LENGTH_THRESHOLD) {
t = tableName.substring(0, PARTS_LENGTH_THRESHOLD);
c = columnName.substring(0, PARTS_LENGTH_THRESHOLD);
} else {
t = tableName.substring(0, PARTS_LENGTH_THRESHOLD + (PARTS_LENGTH_THRESHOLD - columnName.length));
}
} else {
c = columnName.substring(0, PARTS_LENGTH_THRESHOLD + (PARTS_LENGTH_THRESHOLD - tableName.length));
}
}
return t + "_" + c + "_seq";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment