我正在用mysql做一个表格
CREATE TABLE school.student(
Std_id INT NOT NULL AUTO_INCREMENT,
Std_name CHAR(40) NOT NULL,
Std_Birth DATE,
Std_Group CHAR(2) check(Std_Group in ('G1', 'G2','G3','G4'))
);
并且我尝试在使用CREATE时使自动增量从1000开始并按2(1000,1002,1004,1006 .....)递增
4条答案
按热度按时间yc0p9oo01#
你可以试试这个办法。
AUTO_INCREMENT位于创建表格语法的末尾。
llmtgqce2#
您可以按以下步骤操作:
select case when count(Std_id) >= 1 then max(Std_id) + 2 else 1000 end
:这将检查您的表中是否有任何记录,如果没有,它将首先插入id为1000的记录41zrol4v3#
mhd8tkvw4#
可以使用表选项从1000开始为给定表执行auto_increment:
请注意,下一个生成的id将比表选项设置的值大1,因此它将生成值1001。如果希望它包含值1000,请设置表选项
AUTO_INCREMENT=999
。你的另一个要求更难。
https://dev.mysql.com/doc/refman/8.0/en/replication-options-source.html#sysvar_auto_increment_increment :
不可能将这两个变量的影响限制在一个表中;这些变量控制MySQL服务器上 all 表中所有AUTO_INCREMENT列的行为。
换句话说,如果设置了
auto_increment_increment=2
,这将应用于所有包含自动增量列的表,而不是每个表的选项。可以只在插入到student表之前将
auto_increment_increment=2
设置为会话变量,然后在插入到另一个表之前将其设置回默认值,这听起来很容易出错,因为您可能忘记更改会话变量。