我转换了一个char列数据类型的id
。之后,我想将它加1(加1)。
查询:
INSERT INTO `countries` (`id`, `country_name`) VALUES ((SELECT MAX(CAST(`id` as INTEGER)) AS `max_id` FROM `countries`) + 1, 'India');
答案 0 :(得分:2)
这不是你应该如何做标识符。
如果您想增加id
值,则需要在创建表格时使用AUTO_INCREMENT
功能。
你的方式很危险,总有可能同时运行两个交易选择相同的“下一个ID”。
只需创建一个带有标志的表:
CREATE TABLE countries (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO countries (`name`) VALUES ('India');
答案 1 :(得分:2)
以下操作:
INSERT INTO `countries` (`id`, `country_name`)
SELECT MAX(CAST(`id` as INTEGER)) + 1, 'India'
FROM `countries`;
但我认为如果你只将id列设为AUTO_INCREMENT会更容易。