2011-09-19 146 views
3

我有一个没有where子句的SQL语句,因为我想让它影响所有的行。我有一个名称为url的列。现在我想将当前列的网址更改为其他内容。我想连接一些东西到当前的网址。为什么这个SQL语句不能执行?

我的说法是:

UPDATE tablename SET url = 'http' || url; 

这是在SQL文件,该文件执行并引发错误,但数据库没有改变。

任何人都可以帮忙吗?

RDBMS是MySQL的

+7

什么RDBMS可以肯定? – gbn

+2

tsql使用(+)作为concat ...你是使用oracle还是其他一些sql语言?在tsql中||是一个按位运算符 – RThomas

+1

另外,你如何运行该文件? –

回答

3

根据您的发动机(如果它不是甲骨文和你有一些奇怪的MySQL位运算符)

UPDATE tablename SET url = CONCAT('http', url); 

UPDATE tablename SET url = 'http' + url; 
+2

@ user953278:感谢什么是RDBMS? – gbn

+0

对不起,MySql ... – user953278

+1

@ user953278:CONCAT then – gbn

3

(假设它的一个Oracle DB)
我猜你是不是commiting更改,并检查其他会话的变化。

脚本文件更改为:

UPDATE tablename SET url = 'http' || url; 
COMMIT; 
2

如果提交不是隐式的,则可能需要提交事务。 试试

COMMIT;