MySQL嵌套查询查找错误

MySQL嵌套查询查找错误,mysql,Mysql,我试图使用嵌套查询来避免发出两个不同的查询。我的嵌套查询如下图所示 INSERT INTO roles ( _id, user_id, user_role) VALUES ( ((SELECT _id FROM roles ORDER BY _id DESC LIMIT 1)+1), '454', 'USER') 但当我执行时,我得到了 查找错误-MySQL数据库错误:无法指定目标表 FROM子句中更新的“角色” 这个查询有什么解决方法吗?或者我无法在同一个表上执行inse

我试图使用嵌套查询来避免发出两个不同的查询。我的嵌套查询如下图所示

INSERT INTO roles (
   _id, 
   user_id,
   user_role)
VALUES (
((SELECT _id FROM roles ORDER BY _id DESC LIMIT 1)+1), '454', 'USER')
但当我执行时,我得到了

查找错误-MySQL数据库错误:无法指定目标表 FROM子句中更新的“角色”


这个查询有什么解决方法吗?或者我无法在同一个表上执行insert和select操作?

如果您使用的是MySQL>=4.0.14,那么可以使用:

但是,看起来您可能只是想创建
\u id
列,然后不为其提供任何值。MySQL将完成其余工作:

ALTER TABLE roles MODIFY _id INT AUTO_INCREMENT;
INSERT INTO roles (user_id, user_role) VALUES (454, 'USER');
ALTER TABLE roles MODIFY _id INT AUTO_INCREMENT;
INSERT INTO roles (user_id, user_role) VALUES (454, 'USER');
INSERT INTO roles 
SELECT _id+1,'454', 'USER' FROM roles ORDER BY _id DESC LIMIT 1