如果我想将数据从一个字段移动到同一记录中的另一个字段,然后从现有字段中删除数据,这可以在一个SQL语句中可靠地完成,这是否依赖于数据库提供程序?
我正在考虑的SQL的一个例子是
UPDATE table SET field2 = field1, field1 = '' WHERE keyField = 1
感谢您的帮助
答案 0 :(得分:0)
是的,它是可靠的,因为主要的数据库,如Oracle,SQL Server,MySQL等都是事务性的,这确保了ACID。换句话说,它是一个全有或全无的场景,所有更改都会发生或不发生(例如,如果事务被回滚)。
然而,它不是顺序的;即这样做会产生相同的结果:
UPDATE table SET field1 = '', field2 = field1 WHERE keyField = 1
相反,你的SQL正在做这样的事情:
UPDATE table
SET field2_NewValue = field1_OriginalValue
, field1_NewValue = ''
WHERE keyField = 1