如何在UPDATE、INSERT之后返回整行或部分行。这是我的疑问。
UPDATE news SET title = 'changed' WHERE ID = 8 RETURNING *
返回语法错误。
'RETURNING *'
我想获取受影响的行数据。
u2nhd7ah1#
MariaDB和MySQL通常不支持UPDATE语句后的RETURNING子句。您必须在UPDATE陈述式之后的个别陈述式中直接传回更新的数据列,如下所示:
UPDATE
RETURNING
UPDATE news SET title = 'changed' WHERE ID = 8; SELECT * FROM news WHERE ID = 8;
或者使用LAST_INSERT_ID(),如果您正在执行INSERT,这取决于您的连接(尽管在MariaDB中INSERT允许使用RETURNING-请参阅下文)。
LAST_INSERT_ID()
INSERT
INSERT INTO news (ID, title) VALUES (8, 'aaa'); SELECT LAST_INSERT_ID();
从上一个问题开始,在此处阅读更多信息:return the updated value after running the update query in mysql但是,它支持INSERT或REPLACE语句之后的RETURNING行(如果您使用的是10.5或更高版本),如下所示:第一个"小提琴“有关详细信息,请参阅MariaDB文档:REPLACE...RETURNING。
REPLACE
1条答案
按热度按时间u2nhd7ah1#
MariaDB和MySQL通常不支持
UPDATE
语句后的RETURNING
子句。您必须在
UPDATE
陈述式之后的个别陈述式中直接传回更新的数据列,如下所示:或者使用
LAST_INSERT_ID()
,如果您正在执行INSERT
,这取决于您的连接(尽管在MariaDB中INSERT
允许使用RETURNING
-请参阅下文)。从上一个问题开始,在此处阅读更多信息:return the updated value after running the update query in mysql
但是,它支持
INSERT
或REPLACE
语句之后的RETURNING
行(如果您使用的是10.5或更高版本),如下所示:第一个
"小提琴“
有关详细信息,请参阅MariaDB文档:REPLACE...RETURNING。