我有一个包含超过150万条记录的表,其中我有两列A和B.错误地将A的列值插入到列B中,并将列B的值插入到A中。
最近我们才发现了这个问题。什么是纠正这个问题的最佳选择?重新命名列名称(我不知道它是如何可能的,因为如果我们将A改为B,B已经存在),或者交换两列中包含的值?
答案 0 :(得分:1)
嗨,您可以使用以下查询来交换列
CREATE TABLE table_name_bkp AS SELECT * FROM table_name;
但是你在这种情况下有大量的约会重命名会很好。但由于数据问题而重命名列名称不是正确的解决方案。因此,您可以使用以上更新查询来更新您的数据。
在更新之前,请使用查询对要更新的表进行备份,
This solution is working
var svgString = new XMLSerializer().serializeToString(document.querySelector('svg'));
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var DOMURL = self.URL || self.webkitURL || self;
var img = new Image();
//var svg = new Blob([svgString], {type: "image/svg+xml;charset=utf-8"});
var svg = new Blob([svgString], {type: "image/svg+xml"});
var url = DOMURL.createObjectURL(svg);
var png = '';
var emailConfirmationMessage = '';
var img1 = new Image();
img.onload = function() {
ctx.drawImage(img1, 136, 136);
ctx.drawImage(img, 0, 0);
sendEmail(canvas,DOMURL);
};
img1.onload = function(){
img.src = url;
};
img1.src = 'chart1.png';
在播放不会弄乱的原始数据时始终有备份
答案 1 :(得分:0)
对于SQL Server来说,15万行并不是什么大问题。切换列名在关系数据库中有许多缺点,例如索引,外键,也可能需要做很多影响。所以,我想建议去寻找传统的道路。只需进行更新。