Navicat:设置mysql数据库表的主键为uuid
Navicat:设置mysql数据库表的主键id为uuid
·
1 问题描述
当我使用Navicat新建表test_table之后,想通过导入向导将excel表中的数据导入到表test_tab中,由于没有excel表中没有主键对应的字段,导致导入失败,提示Field 'id' doesn't have a default value
这是由于在导入数据时,没有给主键id赋值,违反了非空约束。
表结构如下
导入字段如下
2 解决方案
使用触发器,设置mysql数据表的主键为uuid
设计表,选择触发器,进行以下设置

设置 id 为uuid
BEGIN
SET new.id = UUID();
END
注意:触发器的名不能重复,自身不能重,与其他表也不能重,否则无法保存 👇

保存后就可以啦,在插入数据前会自动在主键id列生成uuid
3 其他方法
还有一种比较笨的方法,就是在excel表中新增id列,设置从1依次递增。在导入向导中将该列与test_table的主键id进行绑定,这样也可以成功导入。
若是需要将id改为uuid ,直接执行update语句即可
UPDATE `test_table`
SET id=uuid
更多推荐


所有评论(0)