插入选择不工作不知道为什么

时间:2016-07-23 14:22:07

标签: mysql sql insert

是否可以这样做?

insert into cart(cartid,rowid,productname) select max(cartid)+1 from cart, 2, "hello"

我想插入自己的rowid和productname值

2 个答案:

答案 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列吗?