开发者社区 > 数据库 > NoSQL数据库 > 正文

数据表输入数据输入不了

已解决

已经创建好了一个数据库,已经创建好了一个数据表,往表里插入数据一直报错1701956525880.jpg

展开
收起
刹那,永恒 2023-12-07 21:44:34 122 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。
    推荐回答

    根据你提供的错误信息,看起来你在尝试向一个名为"score"的表中插入数据时遇到了问题。错误信息指出,这是由于外键约束失败导致的。

    在MySQL中,外键约束用于确保在一个表中的某个字段(称为外键)引用了另一个表中的主键。如果试图添加或更新的数据违反了这个约束,就会出现错误。

    解决这个问题的方法是检查你的数据是否符合外键约束的要求。你需要确保你正在尝试插入的数据满足以下条件:

    1. 外键值必须存在于被引用的表的主键列中。
    2. 如果外键列允许为空,那么插入的数据可以为NULL。
    2023-12-08 13:55:26
    赞同 展开评论 打赏
  • 参考下:
    MySQL 错误 1452 - 无法添加或子行:外键约束失败https://www.nhooo.com/note/qah38c.html

    要了解错误 1452,首先我们需要创建一个表,并借助外键约束将其与另一个表相关联。

    创建第一个表 -

    mysql> CREATE table ForeignTable
    -> (
    -> id int,
    -> name varchar(200),
    -> Fk_pk int
    -> );
    成功创建第一个表后,我们将创建第二个表 -

    mysql> CREATE table primaryTable1
    -> (
    -> Fk_pk int,
    -> DeptName varchar(200),
    -> Primary key(Fk_pk)
    -> );
    现在,我们已经创建了两个表。然后这两个表都在alter 命令的帮助下关联,并添加了外键约束。语法如下 -

    alter table yourFirstTable add constraint anyConstraintName foreign key(column_name which is
    acts foreign key in second table) yourSecondTable(column_name which acts primary key in
    second table).
    现在,上面的查询用于关联两个表。这给出如下 -

    mysql> alter table ForeignTable add constraint constFKPK foreign key(Fk_pk) references
    primaryTable1(Fk_pk);
    Records: 0 Duplicates: 0 Warnings: 0
    现在,这两个表是相关的。记录插入表“foreignTable”如下 -

    mysql> INSERT into ForeignTable values(1,'John',1);
    这会导致以下输出中显示的错误 -

    ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails
    (business.foreigntable, CONSTRAINT constFKPK FOREIGN KEY (Fk_pk)
    REFERENCES primarytable1 (fk_pk))
    在上面的输出中,我们收到错误“无法添加或更新子行:外键约束失败”。我们可以通过将记录插入表 primaryTable1 来消除此错误,如下所示 -

    mysql> INSERT into primaryTable1 values(1,'ComputerScience');
    将记录插入到表primaryTable1 后,我们可以将所需的记录插入到表ForeignTable 中,不会出现任何错误。这如下所示 -

    mysql> INSERT into ForeignTable values(1,'John',1);
    现在,我们可以在 select 命令的帮助下显示 ForeignTable 的表记录,如下所示 -

    mysql> SELECT * from ForeignTable;
    上述查询的输出是 -

    +------+------+-------+
    | id | name | Fk_pk |
    +------+------+-------+
    | 1 | John | 1 |
    +------+------+-------+
    1 row in set (0.00 sec)
    我们还可以借助 select 命令显示 primarytable1 的表记录,如下所示 -

    mysql> SELECT * from primarytable1;
    上述查询的输出是 -

    +-------+-----------------+
    | Fk_pk | DeptName |
    +-------+-----------------+
    | 1 | ComputerScience |
    +-------+-----------------+
    1 row in set (0.00 sec)
    错误 1452 - 无法添加或更新子行:最初将数据记录插入 ForeignTable 时,会发生外键约束失败。

    Note: First, add the record into the second tablei.eprimarytable1 to avoid the above error.

    2023-12-08 08:41:16
    赞同 展开评论 打赏
问答分类:

阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载