如何将一个表中的值插入到另一个表中?
Posted
技术标签:
【中文标题】如何将一个表中的值插入到另一个表中?【英文标题】: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
表。
感谢您的帮助....... :)
【参考方案1】:
由于books 表中已有数据,您需要更新作者ID 而不是插入。
UPDATE tblbooks b
INNER JOIN
tblauthors a ON b.a_name = a.AuthorName
SET
b.Au_id = a.Au_id;
【讨论】:
你在这里做了一些相当大的假设。以上是关于如何将一个表中的值插入到另一个表中?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用'$row'将一个数据库表中的特定值插入到另一个数据库表中?