在已有表上修改字段为自增长

在已有表上修改字段为自增长,第1张

在已有表上修改字段为自增长(没有外键)步骤

1. 先检查该表是否有主键约束

2. 检查是否有默认值

3. 删除主键约束及默认值

4. 删除列

5. 修改列为自增长

6. 设置主键

实例如下:

mysql添加字段用add column,例如:

ALTER TABLE tbname ADD COLUMN id int unsigned NOT NULL AUTO_INCREMENT;

#如果想放到第一列还可以

ALTER TABLE tbname ADD COLUMN id int unsigned NOT NULL AUTO_INCREMENT first;

在数据库中创建存储过程,比如存储过程的名字叫做 test在java中和正常使用sql的方法一样, sql = "call test(B1,B2)", B1和B2是假设你将要插入b表中的数据

假设b表的结构是(ID int auto_incremet, B1 int, B2 int)

假设a表的结构是(ID int)

CREATE test(B1 int, B2 int) #假设A1和A2是将要插入b表中的数据

BEGIN

declare new_id as int #声明自增长所添加的ID

insert into b(B1,B2) values(B1,B2) #给b插入新的记录

select last_insert_id() into new_id #取得新插入记录的ID

insert into a(ID) values(new_id) #把新插入的ID写入a表

select new_id #如果需要的话存储过程返回新得到的ID给客户端

END

注意: 为什么推荐使用存储过程,而不是直接在java程序中使用select last_insert_id()因为这个函数是打开当前端口时,返回最后一个插入的自增长的ID, 如果不用存储过程,可能当前链接关闭,或有其他的应用也在其他有自增长ID的表中插入新的记录, 这时你取回的ID就是错误的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11788978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存