2011-09-19 89 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;