INSERT 语句与 FOREIGN KEY 约束"FK__alive__uid__2FCF1A8A"冲突

时间:2021-05-29 00:35:59
我在sql里面新建查询时输入的语句执行起来完全没问题
sql中的代码:
insert into alive(uid,money,intime) values('10011','300',GETDATE())

INSERT 语句与 FOREIGN KEY 约束"FK__alive__uid__2FCF1A8A"冲突

但是我把这个代码用在了VS2013中运行后就提示约束冲突了
VS2013中的代码:
if(radioButton1.Checked==true)
            {
                conn.Open();
                string insert = string.Format("insert into alive(uid,money,intime) values('{0}','{1}',GETDATE())", name, money);
                SqlCommand cmd = new SqlCommand(insert, conn);
                string select_money = string.Format("select money from detail where uid='{0}'", name);
                SqlCommand cmd1 = new SqlCommand(select_money, conn);
                object obj = cmd.ExecuteScalar();
                if (obj != null)
                {
                    this.textBox2.Text = obj.ToString();
                }
                conn.Close();
            }

INSERT 语句与 FOREIGN KEY 约束"FK__alive__uid__2FCF1A8A"冲突

请问各位大神这是怎么回事???

3 个解决方案

#1


alive 表上有一个外键,某一列参考了 detail 这张表的 uid 字段;
并且,你刚刚 insert 的这条数据,没有在 detail 表中找到相应的记录;

你核对一下 ;

#2


alive 表insert的udi的值:10011在表detail 中不存在,需要先在主表detail 中插入一个uid值为10011的数据.

#3


楼主的问题上面贴友都说清楚了, 不过还想补充一下:
如果希望数据迁移方便, 最好不要有显式的主外键关联(不要设置什么外键), 要不在数据迁移、归档这些方面会让你烦透的!
绝大多数公司都不会设置外键, 外键在心里。

#1


alive 表上有一个外键,某一列参考了 detail 这张表的 uid 字段;
并且,你刚刚 insert 的这条数据,没有在 detail 表中找到相应的记录;

你核对一下 ;

#2


alive 表insert的udi的值:10011在表detail 中不存在,需要先在主表detail 中插入一个uid值为10011的数据.

#3


楼主的问题上面贴友都说清楚了, 不过还想补充一下:
如果希望数据迁移方便, 最好不要有显式的主外键关联(不要设置什么外键), 要不在数据迁移、归档这些方面会让你烦透的!
绝大多数公司都不会设置外键, 外键在心里。