mysql - 如何在MySQL中进行条件插入?

标签 mysql sql

我有两张 table 。

Assets 表

   |  AID  | NAME | 
   | 1234  | item1|

项目表

   |  BID  | ITEM | 
   |       |      |

问题:只有当 Assets 表中存在我要插入的相同数据时,如何将数据插入到项目表中?或者这有可能吗?假设只有当 Assets 表 AID 值(1234)存在时,我才能插入项目表 BID 值(1234)。 我尝试这样做:

INSERT INTO 'item'('BID') VALUES (1234) WHERE 'item'.BID='assets'.AID

最佳答案

INSERT INTO item (BID) SELECT assets.aid FROM assets WHERE aid = 1234;

如果您可能找到多个匹配项并且不想插入多于一行,请在 SELECT 中使用 DISTINCT。

此外,如果您只想限制数据库中的插入,请使用外键约束。一旦你有了它,你就不需要有条件地插入。如果父表中尚未存在辅助信息,只需插入并让数据库尝试失败。

关于mysql - 如何在MySQL中进行条件插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12924802/

相关文章:

mysql - 优化分层查询

SQL Select 排除某些状态的记录

mysql - 合并两个 select 语句的结果 mysql

mysql - 在同一列上选择不同的值

使用 LIMIT 选项优化 MySQL RAND()

mysql - 需要从两个表列中选择不重复的值

MySQL - 查找制表位

mysql - 在mysql中选择一个表

c# - 存储更新、插入或删除语句影响了意外数量的行

sql - 用于比较列中每个单词开头的索引