当前位置: 首页 > 知识库问答 >
问题:

尝试自动将外键值插入my mysql表

子车超英
2023-03-14

我是PHP和MySQL新手,需要帮助。。。

我似乎不知道如何在数据库的表中自动插入外键。主键作为“id”添加到我的“mem”表中,但我希望将相同的id添加到我的“location”表中的外键中。有人能帮忙吗?

我有两张桌子。。。

“mem table”id、用户名、电子邮件。

  |    1    |    2    |    3    |
  |   paul  |   john  | francis |       
  | paul@gm.| john@gm.|francis@.|

“位置表”id、位置、用户id

  |    1    |    2    |    3    |
  |  leeds  |liverpool| london  |       
  |    ?    |    ?    |    ?    | 

如何让用户表中的'id'自动插入到这里作为外键?

我使用这个PHP代码插入数据...

$sql = mysql_query("INSERT INTO mem (username, country, state, city, accounttype, email, password, signupdate) 
        VALUES('$username','$country','$state','$city','$accounttype','$email','$hashedPass', now())")      or die(mysql_error());
$id = mysql_insert_id();

$sql = mysql_query("INSERT INTO location (location) 
VALUES('$location')") or die(mysql_error());
$user_id = mysql_insert_id();

当我提交表格时,我得到了这个错误...无法添加或更新子行:外键约束失败(mem位置,CONSTRAINTlocation_ibfk_1外键(user_id)REFERENCES位置id)ON DELETE CASCADE ON更新级联

有人能帮忙吗?

共有1个答案

漆雕奇逸
2023-03-14

你的FK在错误的方向。现在它说:“用户表中的每个条目必须在位置表中有一个条目。”您尝试在用户表中插入,而不首先创建位置条目。所以FK失败了。

解决方案:在位置表“user\u id”上设置FK-

 类似资料:
  • 当我进行插入时,在traduction(idMot references mot)中的外键为null,在前面发送正确的外键。我最终出现了这个错误:not-null属性引用了一个空值或临时值:com.virtual.expertise.mydico.model.traduction.mot 我想我在我的模型中做错了什么,但仍然不知道是什么。 下面是交易表: 下面是我的WebService:(其中id

  • 我正在尝试在表a中插入外键(在phpmyadmin中): 将表A添加外键(id_B)引用B(id_B); 但我得到了一个错误: 表A的id_A为主键,表B的id_B为主键。这两个表都使用innoDB作为存储引擎,表A中的id_B列和表B中的id_B列具有相同的类型。 出了什么问题,我该如何解决?

  • 问题内容: 我正在尝试更改没有主键或auto_increment列的表。我知道如何添加主键列,但我想知道是否有可能自动将数据插入主键列(我已经在数据库中有500行,并希望为其提供ID,但我不想手动执行) 。有什么想法吗?非常感谢。 问题答案: 在我的测试中,添加列的语句可以正常工作: 在为测试目的而创建的临时表上,以上语句创建了该 列,并为该表中的每个现有行插入了自动递增值,从1开始。

  • 原因:com。微软sqlserver。jdbc。SQLServerException:无法将值NULL插入表ECM3的“白色列表”列中。dbo。白名单;列不允许空值。插入失败。 我已经为我的问题做了很多搜索,我尝试了所有可能的解决方案,但都不起作用。我试图使用关系为的父表(白名单)插入子表(白名单匹配),但它显示了前面的错误! 白名单。java(父级) WhiteListMatches.java(

  • 问题内容: 我有两个实体: 我正在尝试通过执行以下操作插入文件(以及随后的标签): 然后,我使用以下命令将文件插入DAO: 在我的日志中,我在“文件”表中看到一个插入,在标签表中看到2个插入,但是,指向我的文件表(file_id)的标签表中的外键为NULL。 我可能做错了什么? 问题答案: 您不是将标签的文件设置为文件,而是将标签的文件设置为文件。请记住,在OOP中,与关系模型相反,您必须设置关系

  • 我创建了两个表: > 具有列 (主键、自动递增)、、、的表 表包含列(主键,自动增量),(的外键), 我有表格来创建具有现有角色的新员工。要插入的数据示例: 我想在SQL Server 2014中编写一个存储过程,将新的staff插入到<code>tblStaff。 那我该怎么办? 如果我的问题与其他问题重复,我很抱歉。我对SQL更感兴趣。谢谢你的帮助。