是否可以这样做?
insert into cart(cartid,rowid,productname) select max(cartid)+1 from cart, 2, "hello"
我想插入自己的rowid和productname值
答案 0 :(得分:1)
这就是您对查询的说法:
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;
数据库会自动处理作业。
答案 1 :(得分:1)
语法不正确:
insert into cart(cartid,rowid,productname)
select max(cartid)+1, 2, "hello" from cart
另一个问题是,如果购物车表是空的,那么max(cartid)将为空,您无法初始化您的表,因此您必须使用合并:
insert into cart(cartid,rowid,productname)
select coalesce(max(cartid)+1, 1), 2, "hello" from cart
但你为什么要这样做呢?你不能使用auto_increment列吗?