我的UPDATE语句有什么问题?

时间:2017-04-09 19:56:49

标签: sql

我只想使用bookingid更新预订状态。

UPDATE flightbooking
SET status 'C' AS cancelledbooking
FROM flightbooking
WHERE bookingid = 10001;

我收到以下错误:

  

错误:“'C'或附近的语法错误”    第2行:SET状态'C'AS取消预订

任何帮助?

4 个答案:

答案 0 :(得分:0)

您无法在更新语句中使用别名。

UPDATE flightbooking
SET status = 'C'
FROM flightbooking
WHERE bookingid = 10001;

答案 1 :(得分:0)

AS用于SELECT上下文中的别名,而不是UPDATE。

这将有效:

UPDATE flightbooking
SET status = 'C'
FROM flightbooking
WHERE bookingid = 10001;

答案 2 :(得分:0)

简单地:

UPDATE flightbooking SET status = 'C' WHERE bookingid = 10001

答案 3 :(得分:0)

我建议:

UPDATE flightbooking
    SET status = 'C'
    WHERE bookingid = 10001;

这应该适用于任何数据库,假设您有正确的表和列。

FROM不一定是FROM条款的一部分。此外,它的解释方式因数据库而异。修复SET子句后,Postgres将更新所有行(我认为); SQL Server会更新匹配的行; Oracle和MySQL会产生错误。