【问题标题】:How to insert values from one table to another table?如何将一个表中的值插入到另一个表中?
【发布时间】:2019-02-07 17:26:31
【问题描述】:

我有包含作者姓名和 author_id(主键)的作者表。另一个名为 books 的表也有作者姓名和 author_id(外键)。我已经在书表中手动插入了作者姓名的值。 现在,我想使用以下查询在 book 表中的 author id 中插入值:

insert INTO tblbooks (Au_id) 
SELECT tblauthors.Au_id FROM tblauthors JOIN tblbooks ON 
tblbooks.a_name=tblauthors.AuthorName;

但我收到一个错误:

1062 - 键 'PRIMARY' 的重复条目 ''

【问题讨论】:

  • 有根据的猜测您是否忘记在tblbooks 表中的列具有PRIMARY KEY 的位置添加AUTO_INCREMENT 选项? ..如果那没有帮助或不是这样。我建议您提供示例数据和预期结果见Why should I provide an MCVE for what seems to me to be a very simple SQL query?
  • 在子表books 中复制列author_name 指出了糟糕的设计。请从该表中删除该列。您已经引用了authors 表。
  • 感谢您的帮助....... :)

标签: mysql


【解决方案1】:

由于books 表中已有数据,您需要更新作者ID 而不是插入。

UPDATE tblbooks b
        INNER JOIN
    tblauthors a ON b.a_name = a.AuthorName 
SET 
    b.Au_id = a.Au_id;

【讨论】:

  • 你在这里做了一些相当大的假设。
猜你喜欢
  • 2021-11-17
  • 1970-01-01
  • 2012-03-06
  • 2019-09-29
  • 2014-07-29
  • 1970-01-01
  • 2023-03-29
相关资源
最近更新 更多