在MariaDB中执行UPDATE后返回行

pb3s4cty  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(246)

如何在UPDATE、INSERT之后返回整行或部分行。
这是我的疑问。

UPDATE news SET title = 'changed' WHERE ID = 8 RETURNING *

返回语法错误。

1064 -您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在第1行'RETURNING *'附近使用的正确语法

我想获取受影响的行数据。

u2nhd7ah

u2nhd7ah1#

MariaDB和MySQL通常不支持UPDATE语句后的RETURNING子句。
您必须在UPDATE陈述式之后的个别陈述式中直接传回更新的数据列,如下所示:

UPDATE news SET title = 'changed' WHERE ID = 8;
SELECT * FROM news WHERE ID = 8;

或者使用LAST_INSERT_ID(),如果您正在执行INSERT,这取决于您的连接(尽管在MariaDB中INSERT允许使用RETURNING-请参阅下文)。

INSERT INTO news (ID, title) VALUES (8, 'aaa');    
SELECT LAST_INSERT_ID();

从上一个问题开始,在此处阅读更多信息:return the updated value after running the update query in mysql
但是,它支持INSERTREPLACE语句之后的RETURNING行(如果您使用的是10.5或更高版本),如下所示:
第一个
"小提琴“
有关详细信息,请参阅MariaDB文档:REPLACE...RETURNING

相关问题