Field 'id' doesn't have a default value
    

 

首先原因在于没有设置主键自增长。

mysql的自增长模式是IDENTITY。

jpa标签:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)

 

设置主键自增长后,重启项目,要注意数据库里面主键生成模式是否真实被改变了。

navicat下很方便看到:

Field 'id' doesn't have a default value
    

 

如果没有改变,查看无法改写的原因。

如果报错如此:

Cannot change column id used in a foreign key constraint

则表明因为外键的存在而无法改写

要想更改表结构,首先要把基层的表修改了。

A表 作为B表的外键,A表不能随便修改。

B表 有A表的外键,必须先处理好B,然后A才能修改。

所以建表的一开始就应该注明主键生成策略。

否则就把外键删除再来吧。

 

 

相关文章:

  • 2021-08-19
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2021-08-18
  • 2022-02-28
猜你喜欢
  • 2022-12-23
  • 2021-08-05
  • 2021-04-06
  • 2021-04-13
相关资源
相似解决方案