我正在尝试根据另一个表中的值更新一个表.以下请求有什么问题?错误:Unknown column 'source.col3' in 'where clause'
UPDATE target
SET target.col1 = source.col1 * target.col2,
WHERE target.col3 = source.col3
Run Code Online (Sandbox Code Playgroud) 我有一个问题,在使用sql server 2005时,我已执行更新查询而没有where子句(错误地)并且列的所有原始值都丢失了.
我怎样才能得到旧值?
欢迎提出任何建议/提示/解决方案,我们将不胜感激.
mysql_query("UPDATE rekod SET ns = '1' WHERE zone ='255' AND data ='$id1'");
mysql_query("UPDATE rekod SET ns = '1' WHERE zone ='255' AND data ='$id2'");
Run Code Online (Sandbox Code Playgroud)
而不是两次运行查询是否有一种方法可以只更新一次?差异只是数据值.请帮帮我?
我有两个简单的(仅用于解释我的问题)表
我想(在插入或更新表X之后)更新表Y使用来自X的实际记录中的变量.为此,我尝试使用触发器(在表X中),如下所示:
SET TERM ^^ ;
CREATE TRIGGER XYZFOR X ACTIVE AFTER INSERT OR UPDATE POSITION 0 AS
begin
if (new.CODE is distinct old.CODE) then
BEGIN
EXECUTE STATEMENT ('UPDATE Y SET CODE=:old.CODE, id_fromX=:old.IDX WHERE NUMBER=:old.NUMBER');
END
end ^^
Run Code Online (Sandbox Code Playgroud)
但我从服务器收到错误:
Execute statement error at jrd8_prepare :\
335544569 : Dynamic SQL Error
335544436 : SQL error code = -104
335544634 : Token unknown - line 1, column 23
335544382 : .
Statement : UPDATE Y SET CODE=:old.CODE, id_fromX=:old.IDX WHERE NUMBER=:old.NUMBER\ …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据自身的子查询来更新表.所以我需要将子查询的结果作为UPDATE语句中的参数.
我在下面尝试过没有成功:
UPDATE xx
INNER JOIN (
SELECT r.id as id, w.state as state
...
) yy
SET xx.state = yy.state WHERE xx.id = yy.id;
Run Code Online (Sandbox Code Playgroud)
编辑: 完整查询:
UPDATE dpcio_request xx
INNER JOIN (
SELECT r.id as id, w.state as state
FROM dpcio_request r
JOIN dpcio_request_wf w
ON (w.dpcio_request_id = r.id)
WHERE w.id IN ( SELECT MAX(id)
FROM `dpcio_request_wf`
GROUP BY dpcio_request_id )
) r2 ON r1.id = r2.id
) yy ON yy.id = xx.id
SET xx.state = yy.state;
Run Code Online (Sandbox Code Playgroud) 我想在添加total price了基于该顺序比萨饼秩序sub-total和tax.我一直在收到错误,说明子查询使用此命令返回的值超过1:
DECLARE @orderTotal AS INT
SET @orderTotal = (SELECT(SUM((orderSubtotal+tax) * (1 - discountAmount)))
FROM OrderProcessing GROUP BY orderID)
UPDATE OrderProcessing
SET orderTotalAmount = @orderTotal
Run Code Online (Sandbox Code Playgroud)
discountAmount等于0.2表示20%折扣的十进制数.
我UPDATE在Oracle 11g服务器上运行的语句很长:
UPDATE Table SET Column1 = 'One' WHERE Column2 = 'Example';
UPDATE Table SET Column1 = 'Two' WHERE Column2 = 'Something';
-- ...
Run Code Online (Sandbox Code Playgroud)
我想检查每个UPDATE行是否恰好影响了一行(不为零,不超过一行),如果它没有停止执行,则引发错误并回滚所有更新。
我希望这样的语法:
UPDATE Table SET Column1 = 'One' WHERE Column2 = 'Example';
ASSERT sql%rowcount = 1;
Run Code Online (Sandbox Code Playgroud)
那似乎不存在,所以也许我应该做这样的事情:
UPDATE Table SET Column1 = 'One' WHERE Column2 = 'Example';
IF sql%rowcount != 1 THEN
-- Do something, but what?
END IF;
Run Code Online (Sandbox Code Playgroud)
但是,我不确定在IF语句中添加什么,或者这是否是一个好方法。那么,实现这一目标的最优雅的方法是什么?
在Oracle DB上,如果我有一个具有任意行数的表.什么是运行更新查询,将更新前15行,然后等待2秒钟,然后更新接下来的15行,然后等待2秒钟,然后更新接下来的15个...行等最简单的方法?
UPDATE newsreactions
SET newsreactions.enabled = '0'
FROM newsreactions
INNER JOIN users ON newsreactions.memberId = users.id
WHERE users.active = '0' AND users.comment LIKE '%spam%'
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我收到语法错误:
1064-您的SQL语法有误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第3行“ FROM newsreactions INNER JOIN用户ON newsreactions.memberId = users.id WHERE u”附近使用
虽然不知道。如果我更换update,并set用select它工作正常。
我已经读过一些有关“语法错误在或附近”的问答,但是没有一个可以解决我的问题。
错误示例:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
psycopg2.ProgrammingError: syntax error at or near "UPDATE"
LINE 1: DECLARE "teste" CURSOR WITHOUT HOLD FOR UPDATE applicant SET...
^
Run Code Online (Sandbox Code Playgroud)
请注意^右侧的UPDATE。我已经测试了更新脚本,pgadmin 4并且一切正常。
该脚本非常简单:
UPDATE applicant
SET cv_recrutai_entities = %s
WHERE id = %s
Run Code Online (Sandbox Code Playgroud)
我的代码基本上是:
def _connect_database():
return psy.connect(
dbname=settings.DATABASE['DBNAME'],
host=settings.DATABASE['HOST'],
port=settings.DATABASE['PORT'],
user=settings.DATABASE['USER'],
password=settings.DATABASE['PASSWORD'],
application_name=settings.env
)
# Connects to database
conn = _connect_database()
# Creats a named cursor
cur = conn.cursor('test')
# Execute …Run Code Online (Sandbox Code Playgroud) sql-update ×10
sql ×7
mysql ×4
oracle ×2
sql-server ×2
firebird ×1
oracle11g ×1
php ×1
plsql ×1
postgresql ×1
psycopg2 ×1
python ×1
rows ×1
syntax-error ×1
t-sql ×1
triggers ×1