使用数据库时,设置了主键和外键,是不是应该先插入包含主键的数据表,再插入外键的数据表?新手求指点

现在用的是先插包含外键的数据表,报错如下,'data_id'是外键,还有data列,id列为自增。此为插入语句insertintodatas(data)values(?)... 现在用的是先插包含外键的数据表,报错如下,'data_id'是外键,还有data列,id列为自增。
此为插入语句insert into datas(data) values(?)
com.microsoft.sqlserver.jdbc.SQLServerException: 不能将值 NULL 插入列 'data_id',表 'udpygxy.dbo.datas';列不允许有 Null 值。INSERT 失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:308)
at CommandData.DataCl.DataClcode(DataCl.java:27)
at CommandData.CommandHeadUtil.Decodebytes(CommandHeadUtil.java:52)
at CommandData.CommandHeadUtil.Save(CommandHeadUtil.java:77)
at ThreadPool.ControlThread.execute(ControlThread.java:50)
at ThreadPool.WorkThread.run(WorkThread.java:19)
展开
 我来答
溺水的鱼_117
2014-06-02 · TA获得超过299个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:175万
展开全部
报错说的很明白了,不能将值 NULL 插入列 'data_id'。这就说明在表中data_id你设置的是非空列,你把个空值插入进入,肯定报错啊
追问
但是 'data_id'是外键,它不应该自动和主键保持一致吗
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式