是否有可能这样做?插入选择不工作不知道为什么
insert into cart(cartid,rowid,productname) select max(cartid)+1 from cart, 2, "hello"
我想插入我自己的rowid和产品名称
是否有可能这样做?插入选择不工作不知道为什么
insert into cart(cartid,rowid,productname) select max(cartid)+1 from cart, 2, "hello"
我想插入我自己的rowid和产品名称
的值。这是你如何短语查询:
insert into cart (cartid, rowid, productname)
select max(cartid) + 1, 2, 'hello'
from cart;
然而,这是错误的方式有自动递增cartid
。相反,将列定义为自动递增,并简单地执行:
insert into cart (rowid, productname)
select 2, 'hello'
from cart;
数据库自动处理分配。
感谢它的工作!顺便问一下,你知道这是否有效?我收到一个错误,说你不能申报2个表格。更新购物车设置productname ='hey'其中cartid =(从购物车中选择max(cartid)) – Marcus
MySQL不允许您在查询中的大多数其他位置参考正在更新的表。 –
的语法不正确:
insert into cart(cartid,rowid,productname)
select max(cartid)+1, 2, "hello" from cart
的另一个问题是,如果车表是空的,那么最大(cartid)将是无效和无法初始化表,所以你必须使用聚结:
insert into cart(cartid,rowid,productname)
select coalesce(max(cartid)+1, 1), 2, "hello" from cart
但为什么你想要做那样的事情?你不能使用auto_increment列吗?
谢谢!嗯,它的复杂..我很乐意使用auto_increment,如果我可以太哈哈 – Marcus
你是否错过了选择,即“SELECT MAX(cartid)+1,2,'hello'FROM cart' – Unoembre