2012-12-28 144 views
-1

我的表中的SQL更新行保留旧值

CREATE TABLE Person(
    Person_id INT PRIMARYKEY 
    Person_name NVARCHAR(250) 
) 

数据表:

INSERT INTO Person VALUES(1,'Peter') 

我想在SQL更新行保留旧值。

UPDATE Person SET Person_name = 'Mary' WHERE Person_id = 1 

该命令不起作用。我想更新后列Person_name是价值'彼得玛丽'

+3

不工作怎么样?你能发布错误信息吗?你在用什么DBMS? –

回答

4

您需要使用RDBMS连接运算符连接文字值Mary与列Person_name的值。但是,您没有指定您正在使用的RDNMS。

下面是标准的方式:

UPDATE Person 
SET Person_name = Person_name || ' ' || 'Mary' 
WHERE Person_id = 1; 

对于SQL Server使用+运营商,像这样:

UPDATE Person 
SET Person_name = Person_name + ' ' + 'Mary' 
WHERE Person_id = 1; 
+0

这是工作。非常感谢你。 – user1761176

4

这是你想要吗?

更新前:

ID | Person_name 
---+--------------- 
1 | Peter 

更新后:

ID | Person_name 
---+--------------- 
1 | Peter Mary 

如果你是例如使用MySQL,你可以使用这种方法:

UPDATE Person 
SET Person_name = CONCAT(Person_name, ' ', 'Mary') 
WHERE Person_id = 1 

只是CONCAT一个空白和当前值的新值。

请不要忘记添加您正在使用的RDBMS。其他RDBMS可能有不同的语法和可能性。