上面是表结构.
INSERT INTO M_CAFC_TARGET(
UPLOAD_BATCH_SEQ,
CURB_MASS_MIN,
CURB_MASS_MAX,
TARGET_VALUE,
VALID_FROM,
VALID_TO,
REMARK,
DEL_FLG,
CREATED_BY,
CREATED_BY_NAME,
CREATED_WHEN,
LAST_MODIFIED_BY,
LAST_MODIFIED_BY_NAME,
LAST_MODIFIED_WHEN
)VALUES(
1,
1,
1,
1,
1,
1,
1,
'N',
1,
'系统用户',
'2018-02-07',
1,
'系统用户',
'2018-02-07')
执行平常的插入语句,第一次插入数据ID为0?
然后TRUNCATE 表之后 在插入数据是从1开始的(正确的)
不会吧,这不科学
你这上面的表结构的表名和下面插入语句的表名怎么都不一样的?
贴错了,但是结果还是一样的
是否设置了自增序列,默认从0开始。。
没有,设置从1开始的
自增主键使用int unsigned类型,不建议使用bigint,使用bigint,会占用更大的磁盘和内存空间,内存空间毕竟有限,无效的占用会导致更多的数据换入换出,额外增加了IO的压力,对性能是不利的。
ID INT IDENTITY(1,1),
0是什么时候插入的?应该不是本次插入的
TRUNCATE 后还是一样吗?
如果设置了ID自增,插入数据时VALUES后面的第一个值固定直接写为null就行,不用再进行赋值,也就是把第一个1改成null
可以试试insert in 表明 (id)values(ISNULL((select max(id)from 表明),1))
这个不科学,你设置的是1开始的每次增长1