我只想使用bookingid更新预订的状态。我的UPDATE语句有什么问题?
UPDATE flightbooking
SET status 'C' AS cancelledbooking
FROM flightbooking
WHERE bookingid = 10001;
我得到以下错误:
ERROR: syntax error at or near "'C'"
LINE 2: SET status 'C' AS cancelledbooking
任何帮助吗?
我只想使用bookingid更新预订的状态。我的UPDATE语句有什么问题?
UPDATE flightbooking
SET status 'C' AS cancelledbooking
FROM flightbooking
WHERE bookingid = 10001;
我得到以下错误:
ERROR: syntax error at or near "'C'"
LINE 2: SET status 'C' AS cancelledbooking
任何帮助吗?
我建议:
UPDATE flightbooking
SET status = 'C'
WHERE bookingid = 10001;
这应该在任何数据库的工作,假设你有正确的表和列。
FROM
不一定是FROM
子句的一部分。另外,它的解释方式因数据库而异。一旦你修复了SET
条款,Postgres会更新所有行(我认为); SQL Server会更新匹配的行; Oracle和MySQL会产生一个错误。
您不能在更新语句中使用别名。
UPDATE flightbooking
SET status = 'C'
FROM flightbooking
WHERE bookingid = 10001;
AS用于SELECT上下文中的别名,而不是UPDATE。
这将工作:
UPDATE flightbooking
SET status = 'C'
FROM flightbooking
WHERE bookingid = 10001;
它说飞行记录被指定不止一次,我是否只是在更新或从其中给它一个不同的名称? –
你可以分享你的表格模式吗? –
现在有效,谢谢 –
简单:
UPDATE flightbooking SET status = 'C' WHERE bookingid = 10001
'AS'在SELECT上下文中是别名,而不是UPDATE。 –
您使用了哪个数据库? –