diff --git a/static/index.html b/static/index.html
index 13fca7fbb..88b8ac637 100644
--- a/static/index.html
+++ b/static/index.html
@@ -333,6 +333,8 @@
SSH Connection
diff --git a/static/js/app.js b/static/js/app.js
index 1c5c5d71b..3256f8dda 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -1203,6 +1203,32 @@ function bindTableHeaderMenu() {
var menuItem = $(e.target);
switch(menuItem.data("action")) {
+ case "copy_as_insert":
+ var values = getValuesFromContext(context);
+ var columns = getColumnsFromResults();
+ var tableName = $("#results").data("table");
+ var str = "INSERT INTO "+tableName+"("+columns.join(',')+") VALUES("+values.map(function(o){return o.value}).join(",")+")";
+ copyToClipboard(str);
+ break;
+ case "copy_as_update":
+ var values = getValuesFromContext(context);
+ var columns = getColumnsFromResults();
+ var tableName = $("#results").data("table");
+ var where = [];
+ var set = [];
+ columns.forEach(function(row, index){
+ var val = values[index];
+ set.push(row+"="+val.value);
+ if(val.isNull){
+ where.push(row+" IS "+val.value);
+ return;
+ }
+ where.push(row+"="+val.value);
+ })
+ var str = "UPDATE "+tableName+" SET "+set.join(',')+' WHERE '+ where.join(' AND ');
+ copyToClipboard(str);
+
+ break;
case "display_value":
var value = $(context).text();
$("#content_modal .content").text(value);
@@ -1225,6 +1251,38 @@ function bindTableHeaderMenu() {
});
}
+function getColumnsFromResults(){
+ let columns = [];
+ $("#results_header th").each(function(){
+ columns.push(this.innerText);
+ })
+ return columns;
+}
+
+function getValuesFromContext(context){
+ let values = [];
+ $(context).parent().children().each(function(){
+ const isNumber = !isNaN(this.innerText);
+ const isNull = $(this).find("span[class*='null']").length;
+ let obj = {isNull:false, value:''};
+ if (isNull){
+ obj.isNull = true;
+ obj.value = 'NULL';
+ values.push(obj);
+ return;
+ }
+ if(isNumber){
+ obj.value = this.innerText;
+ values.push(obj);
+ return;
+ }
+ // values.push("'"+this.innerText+"'");
+ obj.value = "'"+this.innerText+"'";
+ values.push(obj);
+ })
+ return values;
+}
+
function bindCurrentDatabaseMenu() {
$("#current_database").contextmenu({
target: "#current_database_context_menu",