我有一个示例表,例如 http://www.sqlfiddle.com/#!2/31e65
CREATE TABLE `t1`(
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(40),
`signal` int(4),
PRIMARY KEY (`id`),
KEY `id` (`id`),
KEY `signal` (`signal`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `t1`
(`name`, `signal`)
VALUES
('a', 1),
('b', 2),
('c', 3),
('d', 4);
我尝试向表格t1
插入新记录,其中signal
列中的值为该列中的最大值+1
这是我正在使用的代码
Lock tables t1 write;
INSERT INTO `t1`
(`name`, `signal`)
VALUES
(SELECT MAX(signal)+1 FROM t1, 'e');
unlock t1;
但那是失败的。如何做到这一点,谢谢
答案 0 :(得分:3)
试试这个
INSERT INTO `t1`
(`name`, `signal`)
SELECT
'e', MAX(`signal`)+1 FROM t1
我认为您已将列的顺序颠倒过来了。我改变了它。