怎么给mysql中已有值的字段自动录入ID

哎呀,我当时在搞数据库,想着在旧表上加一个ID字段,这样每条记录都有一个编号,方便以后管理。
我直接拍了拍自己的额头,写了一条ALTER TABLE语句,加了一个标识符,还做了INT类型的AUTO_INCRMENT。
我想这次会更方便,因为我不再需要手动填写ID。
嘿,我很聪明,不是吗?然后我还配置了 PRIMARY KEY 以避免 ID 重复时出现问题。

我写的SQL是这样的: ALTER TABLE name ADD COLUMN id INT AUTO_INCRMENT PRIMARY KEY;
这次一切都很好,每次插入新数据时都会自动填充id,而不必手动输入。
我当时很困惑。
这东西有那么聪明吗?后来我发现,如果表中已经有数据,那么ID会自动从1 开始增加。
妈的,这不是骗局吗?我应该如何处理所有旧数据?想想,一切都还好。
无论哪种情况,ID 都用于唯一标识它,旧数据不会受到影响。

后来我想,如果我想从某个数字开始,比如1 00怎么办?我学到了另一个技巧:ALTER TABLE 有 AUTO_INCRMENT 并且我设置了 AUTO_INCRMENT=1 00。
但后来我没有意识到,这个技巧只能在表为空或者数据被清除的情况下使用。
如果有数据,这个方法就不行了。

我也尝试过使用触发器,认为这样会更灵活。
只需创建一个触发器,并在每次插入新记录时自动为 ID 分配一个值。
这个技巧非常有用,特别是当需要复杂的逻辑时。
但这也让我意识到,在设计数据库时,确实需要仔细考虑标识符的唯一性和趋势。

我还记得有一个案例,当时我在高并发场景下工作,ID出现重复。
我感到头晕,最后不得不一项一项检查,找到重复项并重置它们。
这是一场噩梦。
所以,后来我养成了定期检查自增字段的状态,并使用 SELECT AUTO_INCRMENT FROM INFORMATION_SCHEMA.TABLES 的习惯WHERE TABLE_SCHEMA='数据库名称' AND TABLE_NAME='表名称'; SQL语句来确保一切正常。

sql server建表时怎么设置ID字段自增

是的,这是两种方法。
一种是使用SSMS直接修改表,另一种是编写SQL语句设置。
1 、短信表更新方法:打开短信,选择数据库,点击更新表名,找到字段,勾选右下角的标记标准。
2 、SQL语法:创建新表时,写入id int Identity(1 ,1 ),该值会自动递增。
想要添加前缀和后缀?使用 SELECT 'a' + Convert(varchar(2 0),id) FROM tablename 这是一个很好的技巧。
看看你自己,你还有其他兴趣吗?