MariaDB社区

标题: MySQL中SQL语句求助 [打印本页]

作者: arstero    时间: 2012-4-3 21:50
标题: MySQL中SQL语句求助
先介绍表结构
表名 mtest
字段 id bigint, name varbinary;
主要目的是往mtest中插入语句,其中id的值是按照表中最大的加1得来,获取这个值的sql语句是正确的,如下:
select ifnull(max(id), 0)+1 from mtest;
然后希望是通过在一句sql语句中完成id值的生成和插入,来避免并发时导致的冲突。
因此我想写的sql语句如下:
插入语句 insert into mtest values (select ifnull(max(id), 0)+1 from mtest, 'china');

主要的错误信息如下:

[SQL] insert into mtest values (select ifnull(max(id), 0)+1 from mtest, 'china');
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select ifnull(max(id), 0)+1 from mtest, 'china')' at line 1

作者: kider    时间: 2012-4-5 11:47
应该这样:
INSERT INTO mtest SELECT IFNULL(MAX(id), 0)+1, 'china' FROM mtest ;

有个函数你也可以了解下: LAST_INSERT_ID()




欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2